【发布时间】:2017-06-01 18:07:56
【问题描述】:
我正在使用 ASP.NET MVC 构建一个 Web 应用程序,并且还是这项技术的初学者。
我了解到,为每个视图设置一个 ViewModel 是最佳实践。我可以理解为什么这是一个好主意。然而,在我的情况下,它似乎创造了很多额外的工作。
我有一个名为 Rule 的模型。 它包含 Id、Title、Description、LastModifiedDate、CreatedDate 等字段。
我有一个规则模型的编辑、创建和详细信息视图。
根据最佳实践,我必须为上述每个 View 制作一个 ViewModel。但上述视图的视图模型几乎相同。唯一的区别之一是 Create-ViewModel 没有 Id,但 Details 和 Edit ViewModel 有。除此之外,ViewModel 几乎相同。也就是说,它们包含相同的属性和相同的 DataAnnotation 验证字段。
为什么我觉得这很麻烦?假设我想更改一些数据注释。例如。更改字符串属性的最大长度。如果我想这样做,我必须在规则模型、创建视图模型和编辑视图模型中都这样做。同样,如果我想添加新属性,我必须在所有模型中都这样做。
我这样做对吗,还是可以简化?
【问题讨论】:
-
您可以使用相同的视图模型进行创建、查看和编辑。
-
为每个视图设置一个 ViewModel 的最佳实践不,不是。这很有帮助,但您没有必须这样做。如果它保证了一个视图模型,那就做一个,那也很好
-
您可以使用类继承来减少代码重复。如果您对所有视图使用相同的模型,请注意过度发布。
-
正如其他人所说,您没有必须这样做。留着DRY
标签: c# asp.net-mvc asp.net-mvc-viewmodel