【问题标题】:Determining if a RenderSection() was called in Layout page确定是否在布局页面中调用了 RenderSection()
【发布时间】:2010-12-16 17:51:18
【问题描述】:

布局中有没有办法确定这是否会呈现内容?

@RenderSection("正确",必填:false)

这是确定视图中是否确实有要放置在该部分中的内容。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor


    【解决方案1】:

    可能无法准确回答您关于测试该部分是否会呈现某些内容的问题,但您可以测试一个部分是否已定义并呈现它,或者如果此部分未定义,则提供默认内容:

    @if (IsSectionDefined("Right")) { 
        @RenderSection("Right")
    }
    else { 
        <div>Default content</div>
    }
    

    【讨论】:

    • 这就是我正在寻找的功能,只是一个不同的表达方式。类似@if(Section("Right").HasContent)...
    • @Paul,AFAIK 在 Razor 中没有这样的功能。出于好奇,你需要这个做什么?你打算在什么场景下使用它?
    • 我有一个两栏网站,有时只有两栏。如果没有内容,我想完全隐藏右栏。但是,我不希望用户必须添加除 @Right{ some content html } 之外的任何内容,而无需添加将逐页重复的助手或布局 html。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    相关资源
    最近更新 更多