ASP.NET MVC ViewModel关注

时间:2010-01-20 02:35:51

标签: c# asp.net-mvc

我应该考虑ASP.NET MVC ViewModels只包含flat和primitypes类型,还是应该包含复杂的Core / Domain模型类型?

我正在寻找最佳实践。

感谢。

1 个答案:

答案 0 :(得分:6)

做有意义的事情。

没有权威的消息来源告诉你,使用带有原始类型的ViewModel会杀死小猫,因为它们会出错。对于那些告诉你使用带有魔术字符串的ViewData的每位专家来说都是完全可以的,那里会有纯粹主义者告诉你强类型对象是唯一可行的方法。

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

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

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