我有一种情况,我希望在单个 layout.cshtml 中呈现 2 个局部视图,一个在另一个之下。每个局部视图都属于单独的控制器。我使用 2 种不同的方法处理它,我希望它工作的第一个方法没有成功。我想要的是拥有 categoris1 的部分视图控制器(请参阅下面 layout.cshtml 中的 div-id),然后在它下面显示 categoris2 div 的部分视图。
假设这是我的 _Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - ABCD</title>
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<link href="~/Content/bootstrap-theme.min.css" rel="stylesheet" />
</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
@Html.ActionLink("TitleName", "Index", "Files", new { area = "" }, new { @class = "navbar-brand" })
</div>
</div>
</div>
<div class="row panel">
//My first view should be displayed here
<div id="categoris1" class="col-lg-3">
@Html.Action("DispatchedProducts", "DispatchedProducts")
</div>
//Second view should be displayed here just below first one
<div id="categoris2" class="col-lg-3">
@Html.Action("DisplayUnDispatchedProducts", "UnDispatchedProducts")
</div>
<div class="col-lg-8">
@RenderBody()
</div>
<hr />
<footer>
<p>© @DateTime.Now.Year - My MVC Application</p>
</footer>
</div>
</body>
</html>
这导致仅在我运行应用程序(但不是 categoris2 partialview)时显示 categoris1 div 控制器视图,并且 categoris2 div 部分视图显示在其他 url(当我将路径写入控制器并在浏览器中查看时),我想要它是显示在 categoris1 下方的同一页面上。
我的下一个可行的方法是我只是将这个 categoris2 div(下面的行)保留DispatchedProducts
在底部的“”的部分视图中DisplayDispatchedProducts.cshtml
,它完全显示了我的预期。
<div id="categoris2" class="col-lg-3">
@Html.Action("DisplayUnDispatchedProducts", "UnDispatchedProducts")
</div>
完成 DisplayDispatchedProducts.cshtml 如下所示:
@model IList<ABC.Models.Product>
@{
ViewBag.Title = "First view";
}
<div class="col-md-10">
<h2>Dispatched Items</h2>
<div class="form-group">
<label class="col-md-2 control-label">Dispatched Items</label>
<table>
@foreach (var item in Model)
{
<tc>
<td>
<img src=@item.ProdUrl height="100" width="100" />
</td>
</tc>
}
<hr />
</table>
</div>
</div>
并且 DisplayDispatchedProducts 控制器具有这样的方法(类似的是其他控制器和具有相同返回类型但查询不同的部分视图):
public PartialViewResult DisplayDispatchedProducts()
{
productDispatched = uow.ProductsRepository.GetProductWithOrder().ToList();
return PartialView(productDispatched);
}
但是我想使用第一种方法来调用_Layout.cshtml
我上面提到的文件中的两个部分视图。我希望在彼此下方连续显示。有可能发生吗?如何使它工作?
如果需要任何其他信息,请告诉我