【问题标题】:ASP.NET MVC 4 - multiple models in one viewASP.NET MVC 4 - 一个视图中的多个模型
【发布时间】:2013-06-26 05:44:25
【问题描述】:

我刚刚开始使用 ASP.NET MVC 4 的新项目,但我有疑问。

如何在一个视图中使用多个模型(或 ViewModel-s)?我在 Internet 上进行了搜索,标准解决方案是 “创建具有 2 个或更多属性的复杂视图模型”,例如:

public class ComplexViewModel   
{
    public LoginModel LoginModel { get; set; }
    public CartModel CartModel { get; set; }
}

但是,例如,在每个页面中,我将有至少 2 个模型 - LoginModel 和另一个模型(取决于页面)。那么,我需要在每个 ViewModel 中定义 LoginModel 吗?

P.S.:我使用的是 ASP.NET MVC 4,Entity Framework 5。

【问题讨论】:

  • 您可以在主视图中使用 PartialView,它可以包含自己的单独模型。也许尝试研究一下,那里有很多很好的教程
  • 如果您在许多其他模型中都有 LoginModel,您可以为 LoginModel 创建一个单独的类并在所有其他模型中继承该类。
  • 您可以拥有具有这些模型属性的基类。
  • @Longball27,谢谢,我用过this solution

标签: c# .net entity-framework asp.net-mvc-4 mvvm


【解决方案1】:

您可以创建 BaseViewModel 并定义 LoginModel 属性并从 BaseViewModel 继承所有视图模型,因此您无需在将创建的每个视图模型中定义 LoginModel。

public class BaseViewModel
{
    public LoginModel LoginModel { get; set; }
}

public class ComplexViewModel : BaseViewModel
{
    public CartModel CartModel { get; set; }
}

【讨论】:

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