Как получить привязку модели для работы с пользовательским объектом в ASP.NET MVC? - PullRequest
0 голосов
/ 09 июля 2010

Я бы хотел использовать привязку модели ASP.NET MVC для приложения с расширенными возможностями. У меня есть следующие действия контроллера:

public ActionResult CreateUser(User profile)

Ранее с HTML-формами, если входные имена HTML-форм совпадают с именами свойств User, привязка модели происходит автоматически.

Я понимаю, что привязка модели также ищет в данных маршрута и в querystring значения для привязки к объекту, но когда я помещаю значения строки запроса, соответствующие свойствам, я получаю 404.

Я не могу заставить это ActionResult когда-либо работать. Нужно ли настраивать маршрут с параметрами, соответствующими свойствам пользовательского класса?

1 Ответ

0 голосов
/ 02 февраля 2011

Вы всегда можете реализовать пользовательское связывание модели (интерфейс IModelBinder). Тогда вы можете использовать его так:

public ActionResult CreateUser([ModelBinder(typeof(MyUserModelBinder))]User profile)

или зарегистрируйте его как глобальную привязку модели при запуске приложения:

ModelBinders.Binders[typeof(User)] = new MyUserModelBinder();

Но, возможно, сначала вы должны посмотреть, как работает DefaultModelBinder .
Я думаю, что если вы назовете поля ввода, такие как "profile.Name", "profile.Gender", все должно работать нормально.

...