Asp.net mvc MVC局部视图是将多个模型引入一个视图的最佳方法吗

Asp.net mvc MVC局部视图是将多个模型引入一个视图的最佳方法吗,asp.net-mvc,Asp.net Mvc,在我的MVC项目中,我有一个仪表板,该仪表板旨在使用户能够通过模型支持的局部视图查看多个指标,并通过@Html.partial\u QuarterlyMetrics和@Html.partial\u TeamStats将其引入主仪表板。总共有7个UI部分依赖于@model DevProj.Dashboards.models.DashboardModel之外的其他模型。问题是,局部视图是在单个视图中处理多个模型依赖关系的最佳方法,还是有一种性能更好的可维护方法?我见过一些人创建一个父视图模型,它接受

在我的MVC项目中,我有一个仪表板,该仪表板旨在使用户能够通过模型支持的局部视图查看多个指标,并通过@Html.partial\u QuarterlyMetrics和@Html.partial\u TeamStats将其引入主仪表板。总共有7个UI部分依赖于@model DevProj.Dashboards.models.DashboardModel之外的其他模型。问题是,局部视图是在单个视图中处理多个模型依赖关系的最佳方法,还是有一种性能更好的可维护方法?我见过一些人创建一个父视图模型,它接受单个视图所依赖的所有模型的IEnumerable

可以专门为视图创建容器模型。其中,您将存储所有必要的模型。或者,虽然不推荐,但您可以将模型存储在会话中,然后在运行时加载它们

定义您的容器

public class CustomViewModelContainer
{
    public XModel x { get; set; }
    public YModel y { get; set; }
}
然后

var container = new CustomViewModelContainer()
{
    x = new XModel(),
    y = new YModel()
};
return View("CustomView", container);

请注意,“模型-视图-控制器”标记用于回答有关模式的问题。ASP.NET-MVC实现有一个特定的标记。