【发布时间】:2010-01-20 02:35:50
【问题描述】:
我应该考虑 ASP.NET MVC ViewModels 只包含平面和 primitypes 类型还是应该包含复杂的核心/域模型类型?
我正在寻找最佳做法。
谢谢。
【问题讨论】:
-
我想你可能会发现这篇文章中的一些答案很有帮助:stackoverflow.com/questions/2095984/…。
标签: c# asp.net-mvc
我应该考虑 ASP.NET MVC ViewModels 只包含平面和 primitypes 类型还是应该包含复杂的核心/域模型类型?
我正在寻找最佳做法。
谢谢。
【问题讨论】:
标签: c# asp.net-mvc
做有意义的事。
没有权威的资料可以告诉您,将 ViewModel 与原始类型一起使用会杀死小猫,因为它们是错误的。对于每个告诉您使用带有魔术字符串的 ViewData 完全没问题的专家,会有纯粹主义者会告诉您强类型对象是唯一的出路。
我编写从数据库读取数据并在网页中显示数据的应用程序。我已经尝试了两种方法(使用 ViewData 和使用 ViewModel 对象),当我有一个 ViewModel 对象可以投影到网页中时,我最开心。 ViewModel 类是一个封装验证和视图逻辑(如果我需要)的地方,它提供了我喜欢的数据结构和强类型。
如果我只想显示来自我的 Linq to SQL 类之一的记录,并且不需要下拉数据列表等额外内容,我可以直接使用 Linq to SQL 对象。但是,如果我确实有额外的东西,我会将所有内容放入 ViewModel 类中,并将该 ViewModel 实例(或它们的 IEnumerable 或 IQueryable)投影到视图中。
所以我很少使用 ViewData,但这只是我的风格。很高兴知道如果我需要它,它仍然在那里。
【讨论】: