如何解决ASP.NET C#-选择下拉列表未选择正确的值
我正在使用ASP.NET MVC编写基本应用程序。我有一个带三个文本值的选择下拉列表,空白,“是,我会在那儿”,“否,我不能来”。我希望在提交表单中的“是的,我会在那里”选项时,GuestResponse对象在控制器中注册选项值“ true”,但目前它仅以“ null”形式出现。我是否正确设置了表单,并且在模型中使用布尔类型明智吗?
GuestResponse.cs(模型)
public class GuestResponse
{
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public bool? WillAttend { get; set; }
}
RSVPForm.cshtml
<form method="post" action="/Home/RsvpForm">
<div class="form-group">
<p>
<label for="Name">Your name:</label>
<input type="text" id="name" name="name" />
</p>
</div>
<p>
<label for="Email">Your email:</label>
<input type="text" id="email" name="email" />
</p>
<p>
<label for="Phone">Your phone:</label>
<input type="text" id="phone" name="phone" />
</p>
<p>
<label>
Will you attend?
</label>
<select asp-for="WillAttend">
<option value="Choose an option"></option>
<option value="true">Yes,I'll be there</option>
<option value="false">No,I can't come</option>
</select>
</p>
<button type="submit">Submit RSVP</button>
</form>
HomeController.cs
public class HomeController : Controller
{
[HttpPost]
public ViewResult RsvpForm(GuestResponse guestResponse)
{
Repository.AddResponse(guestResponse); // "WillAttend" should return true here.
return View("Thanks",guestResponse);
}
public ViewResult ListResponses()
{
return View(Repository.Responses.Where(r => r.WillAttend == true));
}
}
Thanks.cshtml(感谢页面)
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Thanks</title>
</head>
<body>
<p>
<h1>Thank you,@Model.Name!</h1>
@if (Model.WillAttend == true) {
@:It's great that you're coming. The drinks are already in the fridge!
} else {
@:Sorry to hear that you can't make it,but thanks for letting us know.
}
</p>
<p>Click @Html.ActionLink("here","ListResponses") to see who is coming. </p>
</body>
</html>
谢谢
此致
罗伯特
英国伦敦
解决方法
您还可以使用name属性将值发送给控制器。
<select name="WillAttend">
<option value="Choose an option"></option>
<option value="true">Yes,I'll be there</option>
<option value="false">No,I can't come</option>
</select>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。