我有简单的表格。当我使用邮寄请求提交空表格(用于测试验证)时...
它不显示验证消息,也返回状态代码302。 并生成一些随机查询字符串。像这样的东西:
http://localhost:49852/Events/Create?Type=0&details=System.Collections.Generic.List%601%5BSampleProject.Models.Type%5D
我从未见过这种饱足感!
@{Html.BeginForm("Save", "Event" , FormMethod.post);}
@Html.ValidationSummary(true, "Please fix these problems.")
// fields...
<input type="submit" value="Save" class="btn btn-primary" />
@{Html.EndForm();}
控制器
[Authorize]
[HttpPost]
public ActionResult Save(EventFormViewModel viewModel)
{
if (!ModelState.IsValid)
return RedirectToAction("Save",viewModel);
//..additional Code.
return RedirectToAction("Index", "Home");
}
答案 0 :(得分:3)
问题在于,如果ModelState
为InValid
,则您将使用模型数据重定向到Save
方法,而不是使用无效模型数据返回当前视图。
因此,如下编写您的Save
POST
方法:
[Authorize]
[HttpPost]
public ActionResult Save(EventFormViewModel viewModel)
{
if (!ModelState.IsValid)
return View(viewModel);
//..additional Code.
return RedirectToAction("Index", "Home");
}