Это абсолютно возможно. Привязка по умолчанию в MVC2 будет пытаться связать значения в форме, которые публикуются в действии, на основе имен полей в форме. Если вы используете такие помощники, как Html.TextBoxFor()
, и имена вашей Модели совпадают должным образом, значения в модели должны быть заполнены автоматически.
Если, однако, имена в вашей форме не полностью совпадают со свойствами вашей ViewModel, возможно, вам придется внести некоторые изменения. Вы можете использовать атрибут BindAttribute, чтобы в некоторой степени настроить способ привязки:
public ActionResult SomeAction([Bind(Prefix="MyEntity" Include="Property1,Property2)] MyEntityModel someEntity)
BindAttribute позволяет вам указать, какие свойства вы хотите связать, и вы можете использовать параметр Exclude, чтобы явно исключить некоторые из связывания. Если вы хотите привязать свойства из формы к свойствам сложного объекта в ViewModel (т.е. MyViewModel.MyDataObject), тогда можно использовать префикс. Ваши имена форм будут "MyDataObject.FirstName", когда вы будете использовать строго типизированных помощников в этом случае. Префикс позволяет указать префикс для имен полей формы.
Вы также можете определить полностью настраиваемые подшивки. Джимми Борд из LosTechies имеет сообщение в блоге об этом.