@Razor-MVC#.NET 4.5中未渲染的部分
我试图在视图中输出一些额外的@Razor-MVC#.NET 4.5中未渲染的部分,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我试图在视图中输出一些额外的元数据,这些视图是通过共享的部分视图使用Html.RenderPartial()呈现的 我的\u Layout.cshtml如下所示: <head> //... @if (IsSectionDefined("AdditionalMeta")) { RenderSection("AdditionalMeta"); } //... </head> @model TitleViewModel @
元数据,这些视图是通过共享的部分视图
使用Html.RenderPartial()
呈现的
我的\u Layout.cshtml
如下所示:
<head>
//...
@if (IsSectionDefined("AdditionalMeta")) {
RenderSection("AdditionalMeta");
}
//...
</head>
@model TitleViewModel
@section AdditionalMeta {
@if (Model != null && Model.Title != null)
{
//additional <meta> tags using Model properties here
}
}
//...other irrelevant code
…和Index.cshtml
视图实现\u Title.cshtml
:
@model TitleViewModel
@{
Html.RenderPartial("_Title", Model);
}
虽然在\u Layout.cshtml
中作为IsSectionDefined(“AdditionalMeta”)
返回false
,但这不会输出任何结果-我尝试将“AdditionalMeta”@节移动到Index.cshtml
,这使得IsSectionDefined(“AdditionalMeta”)\u Layout.cshtml中的返回true
,但给出以下错误:
已为布局页面“~/Views/Shared/_layout.cshtml”定义了以下部分,但尚未呈现这些部分:“AdditionalMeta”
我是不是错过了什么,还是走错了路?谢谢
编辑:Faby的解决方案是正确的,前提是“AdditionalMeta”节在Index.cshtml
中声明,而不是\u Title.cshtml
您刚才用
RenderSection("AdditionalMeta", false);
而不是
@if (IsSectionDefined("AdditionalMeta")) {
RenderSection("AdditionalMeta");
}
参考文档是的,我最初有@RenderSection(“AdditionalMeta”,required:false)
如果在Index.cshtml
中声明“AdditionalMeta”@部分
,而不是\u Title.cshtml