我有一个嵌套的LayoutFiles层次结构,并且需要在最顶层的布局中忽略打印视图不需要的代码“部分”。
打印视图旨在作为普通视图的简化版本,删除侧边栏,删除javascript,删除所有css等,等等。
@if (Model.IsPrint)
{
@* specifically NO 'headerscripts' section *@
}
else
{
@RenderSection("HeaderScripts", false)
}
但是这样做会在尝试打印时给我这种错误:
The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/Layout/_MasterLayout.cshtml": "HeaderScripts; FooterScripts".
我知道我可能会使用...
IsSectionDefined("HeaderScripts")
例如,..,但是那将需要更改称为该布局的其他布局,而我宁愿将所有逻辑都保留在该布局中。
此外,我也不想在评论中渲染这些部分,我知道也可以,但是太乱了。
有什么建议吗?
答案 0 :(得分:0)
我认为您必须在布局中将该部分定义为可选部分,例如:
@RenderSection("HeaderScripts", required: false)