我正在使用 ASP.NET MVC 4。
我认为我的 ModelState 没有正确传递,
控制器操作:Home/EnrolResult如下:
[HttpPost]
public ActionResult EnrolResult(UploadModel model)
{
if (ModelState.IsValid)
{
// my codes in here
return View();
}
return View("~/Views/Home/Index", model);
}
查看:Home/Index,如下:
@using (Html.BeginForm("EnrolResult", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary()
@Html.LabelFor(m => m.Firstname)
@Html.TextBoxFor(m => m.Firstname)
@Html.LabelFor(m => m.Surname)
@Html.TextBoxFor(m => m.Surname)
<li data-role="fieldcontain">
<input type="submit" value="Enrol" />
</li>
}
当我正确输入详细信息时,它会正常运行并显示 enrolresult 视图。
当我错误地输入详细信息时,它会返回 Home/Index,但不会显示未输入哪个表单的验证错误。
模型设置正确,因为我已经对其进行了测试,其中我将 EnrolResult 操作更改为索引操作并且正确显示了验证错误,其中我使用了 view(model) 意味着不必像我尝试的那样传递 ModelState在这种情况下要做。
我这样做的方式正确吗?我见过人们使用 TempData 但我认为这种方法是可行的?