C# 不使用ViewModel方法将两个模型传递给视图

C# 不使用ViewModel方法将两个模型传递给视图,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我想知道,不使用ViewModel方法,是否可以在一个视图中同时传递两个模型 我想你可以使用元组 public ActionResult Index() { return View(new Tuple<Foo, Bar>(new Foo(), new Bar())); } public ActionResult Index() { 返回视图(新元组(新Foo(),新Bar()); } 视图: @模型元组 ... Foo value=@Model.Item1.value

我想知道,不使用ViewModel方法,是否可以在一个视图中同时传递两个模型

我想你可以使用
元组

public ActionResult Index()
{
    return View(new Tuple<Foo, Bar>(new Foo(), new Bar()));
}
public ActionResult Index()
{
返回视图(新元组(新Foo(),新Bar());
}
视图:

@模型元组
...
Foo value=@Model.Item1.value

条形图值=@Model.Item2.value

如果您不需要担心绑定问题,那么您可以使用ViewBag,例如

public ActionResult Index()
{
    ViewBag.FirstModel = new FirstModel();
    ViewBag.SecondModel = new SecondModel();

    return View();
}

然后通过ViewBag在视图中提供模型。

使用
TempData
ViewData
。您甚至可以使用会话或缓存。不过我更喜欢ViewModel方法,因为它正是它的用途。我倾向于只使用TempData或ViewData来填写选择列表。

其他可能的方法是使用以下方法

视图数据 视袋 临时数据

下面是每个示例的完整代码示例,请看一看。希望能有帮助


可能的答案如下[将两个模型传递给一个视图][1][1]:@ZohaibAslam我很清楚我可以用ViewModel方法实现这一点。但我不想使用ViewModel。我认为ViewModel是最好的方法,但我使用过一个类,只要你能查看它的“元组”。该类可以包含不同的类型。首先为什么要这样做?我以为他不想使用ViewModel?我认为这意味着他/她不想创建视图模型类(我认为这是一个更好的实践),但仍然希望在不使用动力学的情况下将两个模型传递到视图(例如,ViewBag).@derape事实上有人问过这件事……所以我很好奇,这只是一种方式还是另一种方式……)
public ActionResult Index()
{
    ViewBag.FirstModel = new FirstModel();
    ViewBag.SecondModel = new SecondModel();

    return View();
}