ASP.NET MVC 4 - 一个视图中的多个模型

lew*_*wis 1 .net c# entity-framework mvvm asp.net-mvc-4

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

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

public class ComplexViewModel   
{
    public LoginModel LoginModel { get; set; }
    public CartModel CartModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

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

PS:我正在使用ASP.NET MVC 4,Entity Framework 5.

小智 5

您可以创建BaseViewModel并定义LoginModel属性并从BaseViewModel继承所有View Models,因此您不需要在将要创建的每个View Models中定义LoginModel.

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

public class ComplexViewModel : BaseViewModel
{
    public CartModel CartModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)