当前位置:首页 > 网络编程 > WEB编程 > ASP.net > Asp.net Mvc Codeplex Preview 5 第二篇 Controller&Filter的新特性

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

点击次数:28 次 发布日期:2008-11-22 11:25:36 作者:源代码网
源代码网推荐

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才可以访问

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华