没有为布局页面“〜/ Views / Shared / index.cshtml”调用“RenderBody”方法
在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
如何解决此错误
答案 0 :(得分:9)
在我添加
后的情况<div class="container body-content">
@RenderBody()
<hr />
<footer><p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
到共享布局的页脚,一切都很完美。这是因为
上的布局页面查看 - &gt;共享强>
尚未加载方法@RenderBody()
,因此您可以使用较高的代码片段来解决此问题,或者您只需在相关的cshtml页面顶部注释布局。
有趣的编码 欢呼声...
答案 1 :(得分:1)
请将此代码放在页面末尾的“body”关闭标记之前
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
答案 2 :(得分:0)
尚未为布局页面调用“RenderBody”方法
这通常发生在您: - 享有部分景致 - 使用_ViewStart.cshtml页面 - 使用以下命令从控制器调用partival视图:return View();
你出错了。这是局部视图,所以你应该这样返回:
返回PartialView();
来源:http://www.cloud-developer.eu/blog/2014/01/20/renderbody-method-called-layout-page/
答案 3 :(得分:0)
我遇到了同样的问题,我的情况是我使用了嵌套布局,你需要为所有_layout包含@RenderBody
答案 4 :(得分:0)
当我在asp.net核心MVC项目中使用TagHelperComponent时遇到相同的错误。我在Google上搜索了很多,但是每个人都遇到了与我不同的问题,并且显然有与我不同的解决方案,例如多个布局文件等。让我解释一下我的问题-
我正在制作一个CopyRight TagHelperComponent,用于将我的版权内容(在主体关闭标签之前)注入到我的应用程序的每个视图中,如下所示-
public class CopyRightTagHelperComponent:TagHelperComponent
{
public CopyRightTagHelperComponent(string copyrightContent)
{
CopyrightContent = copyrightContent;
}
public string CopyrightContent { get; set; }
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
if (context.TagName.Equals("body", StringComparison.OrdinalIgnoreCase))
{
output.Content.AppendHtml(CopyrightContent);
}
return Task.CompletedTask;
}
}
但是我相信您可以在我上面的代码中很好地找到问题。问题是,我试图错误地将我的版权内容注入到body标签中(不是在body关闭标签之前,而是具有Content属性)。花了很多时间后,我发现我使用“ Content”属性来附加内容而不是PreContent或PostContent属性,这就是我的错误。
仅由于错误原因,我试图用“ Content”属性附加内容。将我下面的代码从“内容”更改为“ PostContent”,已修复错误-
if (context.TagName.Equals("body", StringComparison.OrdinalIgnoreCase))
{
output.PostContent.AppendHtml(CopyrightContent);
}
重要节点:默认情况下,Tag Helper组件仅对头部和身体元素起作用。
要使它们适用于Footer等其他元素,我们需要创建一个新的Tag Helper(在footer元素中命名为FooterTagHelper),它将从特殊类“ TagHelperComponentTagHelper”派生。作为参考,请参见下面的Microsoft代码-
谢谢
答案 5 :(得分:0)
最后,我找到了答案,我遇到了同样的问题,并且要非常轻松地解决它,请转到您的视图文件夹create _viewSrart.cshtml-然后转到您在views文件夹中拥有的每个视图并删除或评论这(布局=“〜/ Views / Home / Index.cshtml”;)将起作用。以后谢谢我