asp.net MVC - MVC 视图模型方法和映射.最佳方法



我一直在研究使用 MVC 解决质量分配问题以及以正确的方式做事的不同方法。

到目前为止,我认为最好的两种方法如下:(我也看过自动映射器)

1:值注入器 - 这似乎做得很好,但也依赖于第三方库

2:使用 UpdateModel 方法并绑定到视图模型接口,该接口公开域模型中所需属性的子集。 http://www.codethinked.com/easy-and-safe-model-binding-in-aspnet-mvc

在我使用

上述做法之一编写整个应用程序(无需花费一周时间找出我真正喜欢哪一个)之前,是否有人有使用这两种方法的实际经验,您会推荐哪一种?

在只有文本字段匹配字符串/int属性的简单场景中,任何事情都可以做。

但是当你在视图模型上有与模型中的对象匹配的属性(数据库中的 FK)时,它会变得有点复杂,你可能需要从数据库中提取一些单独的 props 的数据,并将该对象的某些属性映射到 ViewModel,诸如此类。

prodinner asp.net MVC 演示应用程序在 Mapper 类中使用 valueinjecter,有一个 pdf 解释了这种方法,您可以在此处下载:http://prodinner.codeplex.com/

我在这个

主题上所做的所有阅读的一般共识是,如果您要从实体或域模型(从您的数据库)转到视图模型以显示在表单上,请随意使用自动化工具,如AutoMapper或任何您喜欢的工具来自动化它。

但是,如果要从输入或表单模型(通过自动模型绑定填充的对象)返回到实体或域模型,请不要自动执行此操作。正确导航是一个滑坡,可能会导致您的自动化工具在预期/不允许的字段上进行映射。我读到的关于这个(以及我自己的各种实现)的所有内容都表明最佳实践是手动/显式执行此操作。这非常简单,对象初始值设定项可以使其非常易于阅读。

var person = new Person()
{
    PersonId = model.PersonId,
    FirstName = model.FirstName,
    LastName= model.LastName
}
personService.UpdatePerson(person);

类似的东西。

最新更新