【发布时间】:2011-11-07 11:25:42
【问题描述】:
AFAIK,有两种方法可以将数据从控制器传递到视图:一种是松散类型(使用 ViewBag 或 ViewData),另一种是强类型。由于强大的编译时检查,大多数人推荐后者。
在动态 Web 应用程序中,我们会遇到需要将多个实体从控制器传递到视图的场景。在这种情况下,可以将单个实体作为模型传递并在 ViewBag 字典中休息。或者可以创建一个全新的 ViewModel 类,合并各种实体,然后将其传递给视图。
最近遇到这样的问题;我需要传递一个类别模型,其中包含子类别和产品列表作为属性注册。然后在视图中,我需要显示子类别,并确保如果产品集合超过 10 个则分页发生。因此,我不能对类别模型或产品模型使用强类型视图。
解决方案由关注同行tvanfosson 和Ufuk Hacıoğulları(非常感谢两者)在Post 中提出。那就是使用 ViewModel。我仍在努力理解和努力,这似乎是正确的解决方案。
问题:这是处理此类情况的更好方法吗?此外,建议何时使用 ViewModel 以及何时绕过它以支持 ViewBag 和模型。
【问题讨论】: