当我在MVC
中嵌套部分视图时,我收到错误(&#34;&#39; <&#39; &#34;中的服务器错误)应用程序。视图可以单独使用,但不能嵌套。我的理解是这样做是可以的,所以我做错了什么?
基本上,我试图在我的_Layout.cshtml
中使用partials作为子布局。
这是我的主要布局 - _Layout.cshtml
<!DOCTYPE html>
<html>
<head>...</head>
<body style="padding-top: 80px;">
<div class="container-fluid">
<div class="row">
<div id="myTab" class="col-lg-12 col-md-12 col-sm-12">
...
<div class="tab-content">
<div class="tab-pane fade" id="search">
@Html.Partial("~/Areas/Search/Views/Shared/_SearchLayout.cshtml")
</div>
</div>
</div>
</div>
</div>
@RenderBody()
@RenderSection("scripts", required: false)
</body>
</html>
这是第一个局部视图(_SearchLayout)。如果我删除部分和@RenderBody,没有错误。
<div class="container-fluid">
@Html.Partial("_PolicySearch")
@Html.Partial("_ClaimSearch")
</div>
@RenderBody()
此局部视图嵌套在第一个局部视图(_SearchLayout)中:
<div class="row top-buffer search-outline form-horizontal">
<div class="col-md-1 search-icon-size text-primary">
<i class="glyphicon glyphicon-heart"></i>
</div>
<div class="col-md-1 search-icon-size text-primary">
<h4>Claim Search</h4>
</div>
</div>
答案 0 :(得分:1)
使用Html.RenderPartial
答案 1 :(得分:1)
问题是@RenderBody()
。这只能在布局中调用,当以这种方式使用时,_SearchLayout.cshtml
不是,尽管它的名称。
要记住ASP.NET MVC中的布局,局部视图和视图,重要的是它们所有视图。区分它们的唯一方法是如何使用它们。在这种情况下,您将_SearchLayout.cshtml
视图用作部分视图,而部分视图则不能使用@RenderBody()
。
答案 2 :(得分:1)
在您的第一个部分视图中:
我还建议将部分视图重命名为不包含单词&#34; Layout&#34;避免视图类型之间的不匹配。