首页 新闻 会员 周边

asp.net mvc中为每一个view建立一个ViewModel是正确的做法吗?

0
悬赏园豆:20 [已解决问题] 解决于 2010-03-23 16:28

例如Product/Edit.aspx这个View,我要建立一个ProductEditViewModel.cs,然后因为在这个View中需要获取Product的数据,我就要在这个ViewModelil加入public ProductEntity Item{get;set;}属性,然后在View中才可以用<%=Model.Item.ProductName%>来得到数据,可是这样一来,似乎asp.net mvc原生提供的一些方法就无法使用或使用起来很麻烦了.我在想我这样做是不是有问题呢?高手们都是如何做的?

rad的主页 rad | 初学一级 | 园豆:28
提问于:2010-03-16 19:52
< >
分享
最佳答案
0

是否需要为每一个View都建立ViewModel是需要视具体情况而定的。如果View很简单,比如只包含一个业务实体,就没有必要再创建ViewModel,因为同样可以使用强类型的View。但如果View过于复杂,就需要建立ViewModel了。使用强类型的View,是推荐的做法。

不知道lz所指的原生方法无法使用,是指哪些方法呢?

收获园豆:20
麒麟.NET | 老鸟四级 |园豆:3614 | 2010-03-17 10:06
呃,印象中有一些,一时想不来起来.对,例如2.0的Html.EditorForModel(),当然这个有Html.EditorFor()可以用,不是很恰当; OK,那么说,这么做是微软推荐的咯?;另外,一个偏离这个问题的问题,我想知道如何处理每个view的html的title,一般都是怎样的方案?例如title保存在哪里?
rad | 园豆:28 (初学一级) | 2010-03-17 10:56
使用强类型View是推荐的做法,但并不代表大量使用ViewModel是最佳实践,还是要视情况而定。至于Title,可以综合项目的实际情况考虑统一的方案,如写在ViewData里,或者干脆写在页面上,但不要写在ViewModel里,因为这不是ViewModel的逻辑。
麒麟.NET | 园豆:3614 (老鸟四级) | 2010-03-23 23:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册