Использование ModelBinder для получения объекта по идентификатору - PullRequest
0 голосов
/ 19 декабря 2008

У меня есть несколько действий контроллера, которые принимают идентификатор

public ActionResult Get(int? id) {
...
}

public ActionResult Delete(int id) {
...
}

public JsonResult GetJson(int? id) {
...
}

Я думаю, что лучше всего использовать ModelBinder (SomeObjectFromIDModelBinder) для каждого действия, чтобы получение объекта было отделено от контроллера, и методы метода были бы меньше.

Причина, по которой я не хочу, чтобы он назывался SomeObjectModelBinder, заключается в том, что мне также необходимо пересоздать Модели из JSON, поэтому есть SomeObjectFromJsonModelBinder, который обрабатывает воссоздание SomeObject из строки JSON.

Я думаю, что это подходящее использование ModelBinders (соглашение об именах), но просто нужно пояснение. Мысли?

Ответы [ 2 ]

0 голосов
/ 22 января 2009

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

0 голосов
/ 20 декабря 2008

Вам не нужно ничего делать, чтобы получить удостоверение личности. Обработчик MVC будет искать простые значения с тем же именем, что и параметры метода в данных формы, строке запроса и маршруте. Таким образом, у вас может быть маршрут / {controller} / {action} / {id} со значениями по умолчанию action = "Get", id = 1. тогда идентификатор может быть указан в URL как / Home / Get / 3 или /Home/Delete?id=6.

Кроме того, у вас может быть текстовое поле с идентификатором «id» и кнопка «Отправить» в форме, которая отправляет сообщение в «/Home/Get".

»

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

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