现在的位置: 首页 > 移动开发 > 正文

ASP.NET MVC模型绑定有哪些建议

2020年06月01日 移动开发 ⁄ 共 1486字 ⁄ 字号 评论关闭

  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技术的优质平台!

抱歉!评论已关闭.