Что такое привязка модели в ASP.NET MVC?

Что такое привязка модели в ASP.NET MVC, зачем она нужна? Может ли кто-нибудь дать простой пример, можно ли привязать модельную модель путем проверки создания строго типизированного представления?

Ответ 1

ModelBinding - это механизм, который ASP.NET MVC использует для создания сильно типизированных объектов (или заполнения параметров примитивного типа) из входного потока (обычно это HTTP-запрос).

Например, рассмотрим эту модель Person:

public class Person
{
     public string Name { get; set; }
     public int Age { get; set; }
}

Теперь у вас есть Action в некотором Controller, ожидающем тип Person в качестве параметра:

public class HomeController : Controller
{
      public ActionResult EditPersonDetails(Person person)
      {
          // ...
      }
}

Затем Model-Binder отвечает за заполнение этого параметра Person для вас. По умолчанию он делает это, консультируясь с коллекцией ValueProviders и запрашивая значение каждого свойства в (привязанной) модели.

Подробнее о поставщиках-источниках и привязках к моделям на http://haacked.com/archive/2011/06/30/whatrsquos-the-difference-between-a-value-provider-and-model-binder.aspx/