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


BindingHelperExtensions.UpdateFrom改为UpdateModel

  使用方法(缺点:如果表单里存在MyModel里不存在的字段就会报错)

  varx=newMyModel();

  this.TryUpdateModel(x,Request.Form.AllKeys);

  或(缺点:一个一个写太麻烦)

  varx=newMyModel();

  this.TryUpdateModel(x,new[]{"IDX","Name"});

  优点:如果你有定义HtmlHelper.ValidationMessage那么它将会自动为你判空,详见上篇文章

  当然,你也可以通过this.TryUpdateModel(x,new[]{"IDX","Name"},"Account");这种方式来获取不同的Model.

  上述 TryUpdateModel返回是否绑定成功的bool值,如果确定无误,可使用 UpdateModel

  Action提供了数组参数

  View:

 <%using(Html.Form("home","save",FormMethod.Post)){%>
  <%=Html.CheckBox("like")%>
  <%=Html.CheckBox("like")%>
  <%=Html.CheckBox("like")%>
  <%=Html.CheckBox("like")%>
  <%=Html.SubmitButton()%>
  <%}%>

  Action:

  publicActionResultSave(string[]like)
    {
       ViewData["Message"]=string.Join("",like);
       returnView("Index");
    }

  这样是可以取到like的值的

  AcceptVerbs Filter

  这个Filter可以让我们定义Action的访问方式

  [AcceptVerbs("Post")]

  publicActionResultSave()//只有Post才能访问

  或

  [AcceptVerbs("Post","GET")]//Post或Get都能访问,但其它方式不能访问

  publicActionResultSave()

  ActionName Filter

  为一个方法定义它的ActionName

  如HomeController中定义

    [ActionName("MyAction")]
    publicActionResultSave()
    {
       returnView("Index");
    }

  则/home/save不能访问

  一定要/home/myaction才可以访问

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3