什么是ASP.NET MVC中的模型绑定?

rik*_*kky 13 asp.net-mvc asp.net-mvc-4

什么是ASP.NET MVC中的模型绑定,为什么需要它?有人可以给出简单的例子,可以通过检查创建强类型视图来实现模型绑定吗?

hai*_*770 20

ModelBinding 是ASP.NET MVC用于从输入流(通常是HTTP请求)创建强类型对象(或填充基本类型参​​数)的机制.

例如,考虑这个Person模型:

public class Person
{
     public string Name { get; set; }
     public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,你有一些Action在某些Controller该公司预计,一个Person类型作为参数:

public class HomeController : Controller
{
      public ActionResult EditPersonDetails(Person person)
      {
          // ...
      }
}
Run Code Online (Sandbox Code Playgroud)

Model-Binder将负责填补person参数为您服务.默认情况下,它通过查询ValueProviders集合并询问(待绑定)模型中每个属性的值来完成它.

有关价值提供商和模型粘合剂的更多信息,请访问http://haacked.com/archive/2011/06/30/whatrsquos-the-difference-between-a-value-provider-and-model-binder.aspx/