ASP.NET MVC Section

来源:互联网 发布:数据统计岗位职责 编辑:程序博客网 时间:2024/04/28 17:13

本篇文章我们来讨论一下ASP.NET MVC框架中的Section。
Section主要用于将一部分代码插入到 Layout页面中的指定位置。通俗地说就是,我们先在 Layout页面中通过@RenderSection("Header")的方式挖一个坑,告诉下面的视图页面说,我这个地方有个坑,你们把你们各自相关的代码放进来吧。然后,使用该Layout的视图页面通过如下的方式将一坨坨的代码送到Layout的坑中。

@section Header {    <div>        我会出现在布局页中的指定位置    </div>}

为了使Layout和视图更好的合作,我们可以在Layout中挖坑时,声明这个坑是否必须被填上,也可以在视图中将要填坑时,判断Layout是否挖了这么一个坑。
Layout文件可以用下面的方式挖一个坑,同时声明这个坑可以填也可以不填

@RenderSection("Header", false)

在视图中可以通过下面的方式判断Layout是否已经挖好了这个坑

@if (IsSectionDefined("Header")) { @RenderSection("Header")} else { <h4>This is the default header</h4>}

在 Layout中有这么一行代码,@RenderBody(),它是个最大的坑,视图页面中除了声明在@RenderSection代码段中的代码以外的所有代码,都会被填到这个坑中。这种方式也比较好,否则的话,你就需要先在 Layout中声明@RenderSection("Body"),然后在所有的视图中声明@section Body{ }来填坑,这样太不优雅了。使用@RenderBody()的方式的话,刚入门的MVC程序员可以在不了解Section概念的情况下使用Layout。MVC框架的友好设计从这个地方略见一斑。

2 0
原创粉丝点击