如何在单个视图中添加多个模型?

时间:2017-07-19 07:28:51

标签: c# asp.net-mvc

我有3个型号。 1个模型用于搜索框休息2我用于显示复选框列表。

对于搜索框我不想要Ienumerable类型模型但是对于复选框我想要Ienumerable类型模型

数据来自不同的控制器 我怎样才能在一个视图中执行此操作?

请举一些例子。

2 个答案:

答案 0 :(得分:1)

设置ViewModel然后在设置属性后发送ViewModel进行查看;

    public class MyModel1 {}

    public class MyModel2 {}


    public class ViewModel
    {
     public MyModel1 MyModel1 {get; set;}
     public MyModel2 MyModel2 {get; set;}
    }

然后在设置view后的@model ViewModel中 您可以使用任何您想要的子模型,如@Model.MyModel1

答案 1 :(得分:0)

如果要在视图中使用3个模型,则必须声明一个“Bag”视图模型,其中包含要使用的所有子模型。

首先,如果你必须创建你的子模型,如果你没有,那么你将它们包含在行李视图模型中。

    public class FirstViewModel 
    {
      public int MyProperty { get; set; }
    }

    public class SecondViewModel 
    {
      public string MySecondProperty { get; set; }
    }

    public class ThirdViewModel 
    {
      public DateTime MyThirdProperty { get; set; }
    }

    public class BagViewModel
    {
      public FirstViewModel FirstModel { get; set; }

      public SecondViewModel SecondModel { get; set; }

      public ThirdViewModel ThirdModel{ get; set; }
    }

子模型可以是视图模型,也可以是绑定模型。

在你的剃刀视图中,你包含了BagViewModel:

    @model BagViewModel

然后,如果您想使用 FirstViewModel (例如),请执行以下操作:

    @Model.FirstViewModel