【发布时间】:2017-01-11 13:01:15
【问题描述】:
没有为布局页面“~/Views/Shared/index.cshtml”调用“RenderBody”方法
在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
如何解决这个错误
【问题讨论】:
标签: .net asp.net-mvc-5
没有为布局页面“~/Views/Shared/index.cshtml”调用“RenderBody”方法
在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
如何解决这个错误
【问题讨论】:
标签: .net asp.net-mvc-5
在我添加之后
<div class="container body-content">
@RenderBody()
<hr />
<footer><p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
到共享布局的页脚,一切都很完美。这是因为
上的布局页面查看 -> 共享
尚未加载方法@RenderBody(),因此您可以使用上面的代码片段摆脱它,或者您可以在相关cshtml页面顶部评论布局。
玩得开心编码 干杯...
【讨论】:
请将此代码放在页面末尾的“body”关闭标记之前
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
【讨论】:
布局页面没有调用“RenderBody”方法
这通常发生在您: – 有一个局部的看法 – 使用 _ViewStart.cshtml 页面 – 你从你的控制器调用部分视图:return View();
你错了。这是一个局部视图,所以你应该像这样返回:
返回部分视图();
来源:http://www.cloud-developer.eu/blog/2014/01/20/renderbody-method-called-layout-page/
【讨论】:
我遇到了同样的问题,我的情况是我使用嵌套布局,您需要为所有 _layout 包含@RenderBody
【讨论】:
当我在我的 asp.net 核心 MVC 项目中处理 TagHelperComponent 时,我遇到了同样的错误。我用谷歌搜索了很多,但每个人都有与我不同的问题,并且显然有与我不同的解决方案,例如多个布局文件等。让我解释一下我的问题 -
我正在制作一个 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;
}
}
但我相信你可以在我上面的代码中找到问题。问题是,我试图错误地将我的版权内容注入正文标签(不是在正文结束标签之前,而是使用 Content 属性)。花了很多时间后,我发现我使用“Content”属性来附加我的内容,而不是 PreContent 或 PostContent 属性,这就是我的错误。
错误的原因只是,我试图用“内容”属性附加内容。将我的以下行代码从“Content”更改为“PostContent”,已修复错误 -
if (context.TagName.Equals("body", StringComparison.OrdinalIgnoreCase))
{
output.PostContent.AppendHtml(CopyrightContent);
}
重要节点:默认情况下,标签助手组件仅对头部和身体元素进行操作。
为了使它们适用于其他元素,如页脚,我们需要创建一个新的标签助手(在页脚元素的情况下命名为 FooterTagHelper),它将派生自特殊类“TagHelperComponentTagHelper”。作为参考,请参阅下面来自 Microsoft 的代码 -
谢谢
【讨论】:
最后,我找到了这个问题的答案,我遇到了同样的问题并且很容易解决它!转到您的视图文件夹创建 _viewSrart.cshtml - 然后转到您在视图文件夹中的每个视图并删除或评论这( Layout = "~/Views/Home/Index.cshtml";) 它将起作用。稍后谢谢我
【讨论】: