ASP.NET Core MVC:如何判断_Layout中RenderSectionAsync是否为空
在ASP.NET Core MVC中判断Section是否存在并切换内容
在ASP.NET Core MVC的_Layout.cshtml里,你可以通过IsSectionDefined方法判断指定Section是否被视图定义,以此实现“有自定义节就渲染,无则显示公共头部”的逻辑。
具体实现代码
@if (IsSectionDefined("SpecialHeader")) { @await RenderSectionAsync("SpecialHeader") } else { <!-- 这里放置你的公共头部内容 --> <header class="common-header"> <h1>公共头部标题</h1> <nav> <a href="/">首页</a> <a href="/about">关于我们</a> </nav> </header> }
关键说明
IsSectionDefined("SpecialHeader")会检查当前视图是否定义了SpecialHeader节,返回布尔值。- 若检测到节存在,就渲染自定义的
SpecialHeader内容;若不存在,则渲染预设的公共头部代码。 - 此时调用
RenderSectionAsync无需再加required: false参数,因为IsSectionDefined已经确保节存在,不会抛出异常。
内容的提问来源于stack exchange,提问作者YaSecu
相关产品推荐
相关产品推荐

