MVC 的 视图中 @section 的作用?

报错:  

以下各节已定义,但尚未为布局页“~/Views/Shared/Layout2.cshtml”呈现:“BreadCrumb; TailJS”。

后来发现在Index.cshtml中..出现了这些片段

复制代码
@section BreadCrumb
{ 
    <ul class="breadcrumb">
        <li><i class="icon-home"></i>控制台<span class="divider">&raquo;</span></li>
        <li>@Html.ActionLink("首页","Index","Home")<span class="divider">&raquo;</span></li>
        <li>@Html.ActionLink("数据概述","Index","Home")</li>
    </ul>

}

@section TailJS
{
    <script src="/Content/creative/plugins/pnotify/jquery.pnotify.min.js"></script>
}
复制代码

经过查询知道..在目标页中的  @section 所描述的代码片段..是要加载到母版页中的 @RenderSection("描述名") 位置上的..

而我在新建的母版页中并没有这般接收..所以报错 未为布局页呈现..

那么就需要在母版页的对应位置上写入

@if (IsSectionDefined("描述名"))  //该值指示是否在页中定义了指定部分
{
    @RenderSection("描述名")  //将呈现指定部分的内容
}

先判断目标页中是否要加载这些片段..再加载..

运行..通过..


另:

可以定义一个渲染块,这个渲染块可以在LayoutPage里面引用,使用Html.RenderSection("section名称"),可以指定一个bool参数指定如果Content页没有定义section的时候是否忽略或者报错,如Html.RenderSection("seciton名称",false)指示忽略未定义的section
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值