我正在开发一个ASP.net MVC项目,使用CheckBoxFor
辅助方法为我的模型中的boolean
提供值,如下所示:
@Html.CheckBoxFor(m => m.ShouldSaveSearch, new { id="ShouldSaveSearch"})
如果用户勾选了复选框,则完全正常,当控制器接收到模型时,ShouldSaveSearch属性将被设置为true。
[HttpGet]
public ActionResult Search(int studentSearchId = -1)
{
return View(new StudentSearchModel(studentSearchId));
}
[HttpPost]
public ActionResult Search(StudentSearchModel m)
{
ViewBag.SearchResults = Hub.Web.Models.Student.StudentSearchModel.Search(m);
Hub.Web.Models.Student.StudentSearchModel.Save(m);
m.ShouldSaveSearch = false;
m.ShouldShareSearch = false;
m.SavedSearchName = "";
m.SavedSearchDescription = "";
return View(m);
}
然后我将ShouldSaveSearch
属性设置为false
,并返回与最初提交的相同的模型和视图。
但是,当视图渲染时,此属性的复选框仍保持选中状态。 我是否遗漏了什么导致复选框不能自动取消勾选?
RedirectToAction("Search")
<--针对视图的GET请求进行重定向,而不是POST请求。 - Forty-Two