【发布时间】:2017-12-02 05:09:25
【问题描述】:
正如我开始理解的那样,在 MVC 中,视图模型在视图中显示数据都是关于视图模型的。但是当我的家庭控制器中的索引方法看起来像这样时;
public async Task<IActionResult> Index()
{
return View(await _context.Products.ToListAsync());
}
然后如何在我的网页中插入带有视图模型的局部视图,如下所示 (_Layout.cshtml):
<div class="container body-content">
@Html.Partial("_ShoppingCart.cshtml")
@RenderBody()
</div>
毕竟,索引方法需要一个实体模型。如果我尝试将视图模型传递给索引视图,我会收到一个异常,告诉我在 _context 中找不到模型。
【问题讨论】:
-
不相关的 nitpick,我建议您使用
ToList()而不是ToListAsync。我发现ToListAsync的速度非常慢,而且您使用它的方式可能首先是同步的。 -
您可以使用
@Html.Action()调用基于视图模型返回部分视图的服务器方法(并且Index()不需要实体模型(也应该使用视图模型) )
标签: c# asp.net-mvc asp.net-core-2.0