构建一个ASP .Net应用程序,其中页面垂直长,有几个部分。我试图弄清楚如何构建它,特别是与视图模型有关。例如,我的长页面有一些直接的内容文本,一些特色事件,一个项目存储在数据库中的菜单等等......我应该有一个巨型视图模型,例如:
public class MyGiantViewModel
{
public Guid Id { get;set; }
public IEnumerable<MenuItem> MenuItems { get;set; }
public string HeaderContent { get;set; }
public IEnumerable<Event> Events { get;set; }
}
或者我应该将其分解为更小的组件,例如使用ChildAction控制器操作的部分视图。我担心有一大堆数据库调用的小动作,在大视图模型中我可以通过一次调用来获取所有数据。
答案 0 :(得分:0)
此时我不会过分担心性能问题。如果您有一个巨型视图模型,您仍然可以将视图分解为局部视图,例如:
@model MyGiantViewModel
@Html.Partial("_MyPartial", Model.MenuItems)
// In your _MyPartial
@model IEnumerable<MenuItem>
这里很酷的想法是你获得渲染所需的所有数据。