Asp.net mvc 4 表单验证失败时如何重新填充视图?
我有以下代码。这是一个简单的形式。如果验证失败,用户输入的内容仍将显示在表单中。这是怎么做到的?在控制器中,我所做的只是返回一个View(),而不是将模型传递给它。它工作得很好,但我需要澄清它工作的原因 这是控制器Asp.net mvc 4 表单验证失败时如何重新填充视图?,asp.net-mvc-4,asp.net-mvc-5,Asp.net Mvc 4,Asp.net Mvc 5,我有以下代码。这是一个简单的形式。如果验证失败,用户输入的内容仍将显示在表单中。这是怎么做到的?在控制器中,我所做的只是返回一个View(),而不是将模型传递给它。它工作得很好,但我需要澄清它工作的原因 这是控制器 [HttpGet] public ViewResult RsvpForm() { return View(); } [HttpPost] public ViewResult RsvpForm(GuestResponse guestResponse) { if (Mo
[HttpGet]
public ViewResult RsvpForm()
{
return View();
}
[HttpPost]
public ViewResult RsvpForm(GuestResponse guestResponse)
{
if (ModelState.IsValid)
{
return View("Thanks", guestResponse);
}
else
{
return View();
}
}
视图是RsvpForm
@model PartyInvites.Models.GuestResponse
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>RsvpForm</title>
</head>
<body>
@using (Html.BeginForm())
{
@Html.ValidationSummary()
<p>Your name: @Html.TextBoxFor(x=>x.Name)</p>
<p>Your email: @Html.TextBoxFor(x=>x.Email)</p>
<p>Your phone: @Html.TextBoxFor(x=>x.Phone)</p>
<p>
Will you attend?
@Html.DropDownListFor(x => x.WillAttend,new[] {
new SelectListItem() { Text = "Yes, I'll be there", Value = bool.TrueString},
new SelectListItem() { Text = "No, I can't come", Value = bool.FalseString}}, "Choose an option")
</p>
<input type="submit" value="Submit RSVP" />
}
</body>
</html>
@model PartyInvites.Models.GuestResponse
@{
布局=空;
}
RsvpForm
@使用(Html.BeginForm())
{
@Html.ValidationSummary()
您的姓名:@Html.TextBoxFor(x=>x.name)
您的电子邮件:@Html.TextBoxFor(x=>x.email)
您的手机:@Html.TextBoxFor(x=>x.phone)
你会参加吗?
@Html.DropDownListFor(x=>x.willattain,new[]{
新建SelectListItem(){Text=“是的,我会在那里”,Value=bool.TrueString},
新建SelectListItem(){Text=“不,我不能来”,Value=bool.FalseString},“选择一个选项”)
}
ASP.NET MVC假定,如果您正在渲染视图以响应
HTTP POST,并且您正在使用Html帮助程序,那么您很可能
重新显示未通过验证的窗体
您可以在此处阅读更多详细信息:@TrueBlueAussie谢谢:)