【问题标题】:ASP.NET MVC ViewModel ConcernASP.NET MVC ViewModel 关注
【发布时间】:2010-01-20 02:35:50
【问题描述】:

我应该考虑 ASP.NET MVC ViewModels 只包含平面和 primitypes 类型还是应该包含复杂的核心/域模型类型?

我正在寻找最佳做法。

谢谢。

【问题讨论】:

标签: c# asp.net-mvc


【解决方案1】:

做有意义的事。

没有权威的资料可以告诉您,将 ViewModel 与原始类型一起使用会杀死小猫,因为它们是错误的。对于每个告诉您使用带有魔术字符串的 ViewData 完全没问题的专家,会有纯粹主义者会告诉您强类型对象是唯一的出路。

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

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

所以我很少使用 ViewData,但这只是我的风格。很高兴知道如果我需要它,它仍然在那里。

【讨论】:

  • 太真实了,我见过教条式地构建项目,其中包含数千行乏味的样板代码,除了满足某些理念之外没有其他用途。
猜你喜欢
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
相关资源
最近更新 更多