【发布时间】:2017-08-09 13:58:30
【问题描述】:
在使用 WebForms 多年后,我正在转向 MVC,我对复杂页面以及 MVC 的工作原理有疑问
我了解控制器创建了一个模型,该模型传递给视图,然后显示给用户。
如果我们以示例 Microsoft 主页为例(显示在本文底部),并假设以黄色突出显示的每个区域都是单独的数据库驱动区域,它们在主页上组合并通过调用家庭控制器/索引方法。
我的问题是关于如下所示的页面如何构建必要的模型,然后将其传递回视图进行渲染。
我的第一个选择是创建包含每个小节(以及每个小节内容)的复杂 ViewModel 并将其传递回视图,但我认为在复杂页面上这会很快变得混乱。
另一种选择可能是在出现小节的每个地方使用一堆 RenderAction 调用(我不确定这是否正确)。
也许 PartialViews / ViewComponent 可能是我可用的另一个选项。
在 WebForm 世界中,我会在代码隐藏页面中使用具有自己逻辑的 UserControl,但显然我不能在这里执行此操作(尽管 ViewComponents 看起来确实相似)
因此,给定一个复杂的页面,生成一个或多个模型和视图/视图的最佳做法是什么,以保持一切整洁。
感谢您的建议:)
【问题讨论】:
-
你提到的所有选项都合适,但最好取决于多种因素
标签: asp.net-mvc