ASP.NETMVC中的ModelBinding使用起来非常简单,本文总结了关于在MVC项目中更好使用ModelBinding的一些建议.供大家学习、参考。下面学步园小编来讲解下ASP.NETMVC模型绑定有哪些建议?
ASP.NETMVC模型绑定有哪些建议
ASP.NETMVC中的ModelBinding使用起来非常简单.你的Action方法需要数据,在传入的HTTP请求中携带着你需要的数据,数据可以在请求的表单数据中,还可能在你的URL地址本身中.通过DefaultModelBinder,可以神奇地将表单中的数据和路由中的数据转换到对象中.ModelBinder使得你的控制器代码可以干净地从请求以及关联的环境中分离出来.
这里有一些关于在MVC项目中更好使用ModelBinding的建议.
Tip#1:最好使用ModelBinding而不是Request.Form
如果你的Action像下面这样:
1.[AcceptVerbs(HttpVerbs.Post)]
2.
3.publicActionResultCreate()
4.
5.{
6.
7.Reciperecipe=newRecipe();
8.
9.recipe.Name=Request.Form[“Name”];
10.
11.
12.
13.//...
14.
15.
16.
17.returnView();
18.
19.}
就不对了.这些属性使得你的Action很难读而且更难以测试,ModelBinder可以帮你从Request和HttpContext中摆脱出来.比如,你可以使用FormCollection类型的参数来代替上面的代码:
ASP.NETMVC模型绑定有哪些建议
1.publicActionResultCreate(FormCollectionvalues)
2.
3.{
4.
5.Reciperecipe=newRecipe();
6.
7.recipe.Name=values[“Name”];
8.
9.
10.
11.//...
12.
13.
14.
15.returnView();
16.
17.}
使用FormCollection你可以不必再深入到Request对象,这样,有时候你就可以使用低层次的控制了.但是,如果你的数据来自Request.Form,或者URL请求参数,你可以通过ModelBinding来完成它的魔术.
1.[AcceptVerbs(HttpVerbs.Post)]
2.
3.publicActionResultCreate(RecipenewRecipe)
4.
5.{
6.
7.//...
8.
9.
10.
11.returnView();
12.
13.}
在这个例子中,ModelBinder将会帮你创建newRecipe对象,并且使用从Request中获得获得的数据来填充它,真的是魔术.有许多的途径允许你定制绑定的处理过程,使用白名单,黑名单,前缀,以及接口,更多的控制还允许你通过UpdateModel和TryUpdateModel方法进行,只是要注意无意的绑定.看一看JustinEtheredge的文章ThinkBeforeYouBind。
以上就是关于“ASP.NETMVC模型绑定有哪些建议”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!