大家好,又见面了,我是你们的朋友全栈君。
本篇文章我们来讨论一下ASP.NET MVC框架中的Section。
Section主要用于将一部分代码插入到 Layout页面中的指定位置。通俗地说就是,我们先在 Layout页面中通过@RenderSection("Header")
的方式挖一个坑,告诉下面的视图页面说,我这个地方有个坑,你们把你们各自相关的代码放进来吧。然后,使用该Layout的视图页面通过如下的方式将一坨坨的代码送到Layout的坑中。
@section Header {
<div>
我会出现在布局页中的指定位置
</div>
}
为了使Layout和视图更好的合作,我们可以在Layout中挖坑时,声明这个坑是否必须被填上,也可以在视图中将要填坑时,判断Layout是否挖了这么一个坑。 Layout文件可以用下面的方式挖一个坑,同时声明这个坑可以填也可以不填
代码语言:javascript复制@RenderSection("Header", false)
在视图中可以通过下面的方式判断Layout是否已经挖好了这个坑
代码语言:javascript复制@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框架的友好设计从这个地方略见一斑。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162941.html原文链接:https://javaforall.cn