加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在“剃刀”视图中默认一个部分

发布时间:2020-12-15 23:55:34 所属栏目:asp.Net 来源:网络整理
导读:这是我要解决的情况: 我有一个主要的共享布局与一个部分@RenderSection(“菜单”),我想默认为我的大多数页面的标准菜单,但我想在几个子页面中替换/覆盖该部分.剃须刀在这个阶段在游戏中是否可能? 我希望我可以在_ViewStart.cshtml中定义该部分的默认实现,
这是我要解决的情况:

我有一个主要的共享布局与一个部分@RenderSection(“菜单”),我想默认为我的大多数页面的标准菜单,但我想在几个子页面中替换/覆盖该部分.剃须刀在这个阶段在游戏中是否可能?

我希望我可以在_ViewStart.cshtml中定义该部分的默认实现,但它似乎不喜欢它.

菜单部分视图对于这种情况会更好吗?

编辑:

我现在使用此代码收到以下错误:以下部分已定义,但尚未呈现给布局页面“?/ Views / Shared / _Layout.cshtml”:“菜单”.

_Layout.cshtml

<div id="menu">
@if (IsSectionDefined("menu"))
{
    RenderSection("menu");
}
else { 
    <text>
            <ul>
                <li>@Html.ActionLink("Home","Index","Home")</li>
                <li><a href="#">Lookups</a>
                    <ul>
                        @Html.ActionLink("Product","Product")
                    </ul>
                </li>
            </ul>
    </text>
}
        </div>

Index.cshtml

@section menu {
            <ul>
                <li>@Html.ActionLink("Product","Product")</li>
                <li>@Html.ActionLink("Form Type","Product")</li>
                <li>@Html.ActionLink("Supplier","Product")</li>
            </ul>
    }

解决方法

啊,我搞砸了,发现我可以通过切换逻辑来做到这一点:
@RenderSection("Header",false)
@if (!IsSectionDefined("Header")) { 
<header>
    Default Header!
</header>
}

所以如果我的页面没有定义@section Header {…},它将呈现默认值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读