【问题标题】:Are MVC Partial Views the best approach to bringing in multiple models into one viewMVC 部分视图是将多个模型引入一个视图的最佳方法吗
【发布时间】:2017-05-12 19:47:16
【问题描述】:

在我的 MVC 项目中,我有一个仪表板,旨在使用户能够查看由模型支持的部分视图提供的多个指标,并通过 @Html.Partial("_QuarterlyMetrics")@Html.Partial("_TeamStats") 将其带入主仪表板。总共有大约 7 个 UI 部分依赖于 @model DevProj.Dashboards.Models.DashboardModel 之外的其他模型。问题是,局部视图是单个视图中多个模型依赖的最佳方法,还是有更好的可维护方法?我已经看到有些人创建了一个父 ViewModel,它采用单个视图所依赖的所有模型的 IEnumerable。

【问题讨论】:

  • 请注意,model-view-controller 标签是针对有关模式的问题。 ASP.NET-MVC 实现有一个特定的标签。

标签: asp.net-mvc


【解决方案1】:

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

定义你的容器...

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多