在不使用ViewModel方法的情况下传递两个模型进行查看



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

我想您可以使用Tuple<T1, T2>。。。

public ActionResult Index()
{
    return View(new Tuple<Foo, Bar>(new Foo(), new Bar()));
}

视图:

@model Tuple<Foo, Bar>
...
<div class="container">
    Foo value = @Model.Item1.Value
    <hr />
    Bar value = @Model.Item2.Value
</div>

实时演示

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

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

然后,模型可以通过ViewBag在视图中显示。

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

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

ViewDataViewBagTempData

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

使用ViewData、ViewBag、TempData 传递多个模型进行查看

最新更新