Asp.net MVC从ViewModel检索模型对象

时间:2010-08-23 11:18:37

标签: design-patterns data-binding asp.net-mvc-2

所以我使用ViewModels在我的MVC应用程序中从/向Web表单传递数据,这似乎是我所读过的推荐练习。

我的问题是将ViewModel映射到实际域实体的常规方法是什么?

我猜我应该为我的ViewModel添加一个'GetObject'方法,所以我有类似的东西:

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

这是正确的做法吗?看来我通过这种方式使用ViewModels为自己创造了许多不必要的工作。

1 个答案:

答案 0 :(得分:1)

假设您将控件绑定到视图中的Person对象的属性,如此

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

您可以使用以下方法仅接受人物模型

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