ASP.NET MVC 视图模型关注点

4

我应该考虑只包含扁平和基本类型的ASP.NET MVC视图模型,还是应该包含复杂的Core/Domain模型类型?

我正在寻找最佳实践。

谢谢。


1
我认为您可能会发现这篇帖子上的一些答案很有帮助:https://dev59.com/2kvSa4cB1Zd3GeqPeGz9. - ahsteele
1个回答

6

做有意义的事情。

没有权威的来源告诉你使用原始类型的ViewModel会杀死小猫,因为他们是错误的。对于每一个专家都告诉你使用带有魔术字符串的ViewData是完全可以的,也会有纯粹主义者告诉你强类型对象是唯一的选择。

我编写从数据库读取数据并在网页中显示数据的应用程序。我尝试过两种方法(使用ViewData和使用ViewModel对象),当我有一个ViewModel对象来投影到网页中时,我最满意。如果需要,ViewModel类是封装验证和视图逻辑的地方,并提供我喜欢的数据结构和强类型。

如果我只想显示我的Linq to SQL类之一的记录,并且我不需要额外的下拉数据列表等附加功能,我可能会直接使用Linq to SQL对象。但如果我确实有额外的东西,我就把所有东西放入ViewModel类中,并将该ViewModel实例(或其IEnumerable或IQueryable)投影到视图中。

所以我很少使用ViewData,但这只是我的风格。如果需要,它还是很好知道它仍然存在。


1
太正确了,我见过有几千行乏味的样板代码被教条地构建在项目中,这些代码除了满足某种理念以外毫无意义。 - John Farrell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接