使用方法(缺點:如果表單裡存在MyModel裡不存在的字段就會報錯)
var x = new MyModel();
this.TryUpdateModel(x, Request.Form.AllKeys);
或(缺點:一個一個寫太麻煩)
this.TryUpdateModel(x, new[] {"IDX", "Name"});
優點:如果你有定義HtmlHelper.ValidationMessage那麼它将會自動為你判空,詳見上篇文章
當然,你也可以通過this.TryUpdateModel(x, new[] {"IDX", "Name"},"Account");這種方式來擷取不同的Model.
上述 TryUpdateModel傳回是否綁定成功的bool值,如果确定無誤,可使用 UpdateModel
View:
<%using (Html.Form("home", "save", FormMethod.Post)) {%>
<%=Html.CheckBox("like") %>
<%=Html.SubmitButton() %>
<%}%>
Action:
public ActionResult Save(string[] like)
{
ViewData["Message"] = string.Join("", like);
return View("Index");
}
這樣是可以取到like的值的
這個Filter可以讓我們定義Action的通路方式
[AcceptVerbs("Post")]
public ActionResult Save()//隻有Post才能通路
或
[AcceptVerbs("Post","GET")]//Post或Get都能通路,但其它方式不能通路
public ActionResult Save()
為一個方法定義它的ActionName
如HomeController中定義
[ActionName("MyAction")]
public ActionResult Save()
則/home/save不能通路
一定要/home/myaction才可以通路