天天看點

Asp.net Mvc Codeplex Preview 5 第二篇 Controller&Filter的新特性

使用方法(缺點:如果表單裡存在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才可以通路

繼續閱讀