TIH*_*Han 4 c# model-view-controller asp.net-mvc viewmodel asp.net-mvc-3
我知道您使用ViewModel来存储要在View中使用的其他模型和源的不同数据,因为模型并不总能保存您想要的内容.
我想弄清楚是否适合为每个View使用ViewModel.我问的原因是出于一致性原因.您可以拥有一个只需要Model本身的View和另一个必须拥有ViewModel的View.在你的所有观点之间混合这些是不是很好?或者每个View都应该有一个ViewModel?
这很重要,因为我的模型与数据库直接相关,因为我正在使用Entity Framework 4.1 Code First.
Kel*_*sey 13
这不是一项要求,但这是一种最佳做法.
您希望尽可能地将数据库与演示文稿分离,并且ViewModel
(即使它是相同的)为您提供分离.它也保持一致,所以你没有模型的一些视图,有些没有.这种类型的设计使您可以考虑希望您的观看到的所有数据,并找出优化,看看是否可能发生重复数据,将数据保持在一个位置,等等.
把你想象成ViewModel
与View
...... 签订合同,这View
需要X才能运作.
前面的工作要多一些,但最终会得到回报.
就个人而言,我喜欢抽象从我的模型中发送到我的视图的内容.
原因是需求变化并且使用视图模型我可以快速包含我需要的数据而不会污染我的模型.
当您的模型由框架创建时,这会更加发挥作用.如果您的框架相关模型发生变化,那么抽象出模型的细节可能会成为未来.
还值得记住,您的视图独立于您的控制器和模型.您可能会发现,通过利用视图模型,您可以比将视图绑定到模型本身时更轻松地跨控制器方法重新使用视图.