Pan*_*yay 2 viewmodel asp.net-mvc-3
AFAIK,有两种方法可以将数据从控制器传递到视图:一种是松散类型(使用ViewBag或ViewData),另一种是强类型.由于强大的编译时检查,大多数人推荐后者.
在动态Web应用程序中,当需要将多个实体从控制器传递到视图时,我们遇到了各种情况.在这种情况下,可以将单个实体作为模型传递并放在ViewBag字典中.或者,可以创建一个全新的ViewModel类,合并各种实体,然后将其传递给视图.
最近,我遇到了这样的问题; 我需要传递一个类别模型,其中包含子类别列表和作为属性注册的产品.然后在视图中,我需要显示子类别,同时确保在产品集合中出现分页(如果它们大于10).因此,我无法对类别模型或产品模型使用强类型视图.
该解决方案由后续的同行,呈现tvanfosson和UfukHacıoğulları(非常感谢两者)在这个帖子.那就是使用ViewModel.我仍然试图理解并研究它,它似乎是正确的解决方案.
问题:这是处理此类情况的更好方法吗?此外,何时建议使用ViewModel以及何时绕过它以支持ViewBag和模型.
Viewmodel类的唯一目的是包含要通过action方法发送到视图的(强类型)数据.
因此,您提到的问题中的答案建议创建一个Viewmodel类,其中包含视图中所需的所有数据的属性.
Viewbag使用的优点是您没有创建单独类的开销.缺点是您没有编译时类型检查和intellisense可用.
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |