我可以在MVC中的同一视图中使用多个viewModel吗?

时间:2018-05-28 14:10:26

标签: c# .net asp.net-mvc viewmodel

是否可以在同一视图中使用多个视图模型?

我试图使用@model属性

的viewmodel

但是,如果我可以使用第二个viewModel,那么我会陷入困境,我放第二个?

1 个答案:

答案 0 :(得分:5)

您无法在同一视图中发送两个视图模型。

作为一种快速解决方法,您可以创建另一个包装要在视图中发送的所有模型的类。通过这种方式,您将受益于强类型视图。

  public class Foo
  {
    public int ID { get; set; }
    public string Name { get; set; }
  }

  public class Bar
  {
    public int ID { get; set; }
    public string Name { get; set; }
  }

  public class FooBar
  {
    public Foo Foo { get; set; }
    public Bar Bar { get; set; }
  }

在您的操作方法中:

  var foo = new Foo
  {
    ID = 1,
    Name = "Foo"
  };

  var bar = new Bar
  {
    ID = 2,
    Name = "Bar"
  };

  var fooBar = new FooBar
  {
    Foo = foo,
    Bar = bar
  };

  return View(fooBar);