Asp.net MVC извлекает объект модели из ViewModel - PullRequest
0 голосов
/ 23 августа 2010

Поэтому я использую ViewModels для передачи данных из / в веб-формы в моем приложении MVC, что, как представляется, является рекомендуемой практикой из того, что я прочитал.

Мой вопрос: каков нормальный подход для отображения ViewModel в фактическую сущность домена?

Полагаю, мне следует добавить метод GetObject в мои ViewModels, чтобы у меня было что-то вроде:

[AcceptVerbs(HttpVerbs.Post)]
public void CreatePerson(PersonViewModel model)
{
    Person p = model.GetPerson();
    _repository.Save(p);
} 

Это правильный подход? Похоже, я создаю много ненужной работы для себя, используя таким образом ViewModels.

1 Ответ

1 голос
/ 23 августа 2010

Предполагая, что вы привязываете свои элементы управления к свойствам объекта Person в представлении следующим образом:

<% Html.TextBoxFor(model => model.Person.Name) %>

Вы можете использовать следующий метод, чтобы принимать только модель человека

[AcceptVerbs(HttpVerbs.Post)] 
public void CreatePerson([Bind(Prefix="Person")]Person person) 
{ 
    _repository.Save(person); 
}
...