长滚动页面的大巨型视图模型

时间:2015-06-13 00:59:26

标签: asp.net-mvc viewmodel

构建一个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控制器操作的部分视图。我担心有一大堆数据库调用的小动作,在大视图模型中我可以通过一次调用来获取所有数据。

1 个答案:

答案 0 :(得分:0)

此时我不会过分担心性能问题。如果您有一个巨型视图模型,您仍然可以将视图分解为局部视图,例如:

@model MyGiantViewModel
@Html.Partial("_MyPartial", Model.MenuItems)

// In your _MyPartial
@model IEnumerable<MenuItem>

这里很酷的想法是你获得渲染所需的所有数据。