C # MVC: Каковы реальные преимущества использования Modelbinders? - PullRequest
1 голос
/ 07 июня 2009

Мне интересно, каково реальное измеримое преимущество использования Modelbinders?

Ответы [ 3 ]

1 голос
/ 07 июня 2009

Вместо того, чтобы отправлять примитивы в ваше действие:

public ActionResult Search(string tagName, int numberOfResults)

вы получаете пользовательский объект:

public ActionResult Search(TagSearch tagSearch)

Это делает ваше поисковое действие более «тонким» (хорошая вещь), намного более проверяемым и снижает затраты на обслуживание.

0 голосов
/ 07 июня 2009

Вот еще одно преимущество:

Вы можете создавать связыватели моделей, которые извлекают объект из базы данных, только что получившей идентификатор.

Это позволит вам получить такие действия

// GET /Orders/Edit/2
public ActionResult Edit(Order order){
  return View(order);
}

А пользовательский ModelBinder сделает выборку данных для вас, сохраняя ваш контроллер скином.

Без этого ModelBinder это может выглядеть так:

// GET /Orders/Edit/2
public ActionResult Edit(int id){
  var order = _orderRepository.Get(id);
  // check that order is not null and throw the appropriate exception etc
  return View(order);
}
0 голосов
/ 07 июня 2009

Связующие для моделей

Модель связующего в MVC обеспечивает простой способ отобразить опубликованные значения формы к типу .NET Framework и передать введите метод действия как параметр. Связующие также дают вам контроль над десериализацией типы, которые передаются в действие методы. Модельные переплеты похожи на тип конвертеры, потому что они могут конвертировать HTTP-запросы в объекты, которые перешел к методу действия. Тем не мение, у них также есть информация о текущий контекст контроллера.

С здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...