所以我使用ViewModels在我的MVC应用程序中从/向Web表单传递数据,这似乎是我所读过的推荐练习。
我的问题是将ViewModel映射到实际域实体的常规方法是什么?
我猜我应该为我的ViewModel添加一个'GetObject'方法,所以我有类似的东西:
[AcceptVerbs(HttpVerbs.Post)]
public void CreatePerson(PersonViewModel model)
{
Person p = model.GetPerson();
_repository.Save(p);
}
这是正确的做法吗?看来我通过这种方式使用ViewModels为自己创造了许多不必要的工作。
答案 0 :(得分:1)
假设您将控件绑定到视图中的Person对象的属性,如此
<% Html.TextBoxFor(model => model.Person.Name) %>
您可以使用以下方法仅接受人物模型
[AcceptVerbs(HttpVerbs.Post)]
public void CreatePerson([Bind(Prefix="Person")]Person person)
{
_repository.Save(person);
}