页面布局
asp.net MVC中提供了布局的支持,默认情况下才布局文件保存到 /View/Shared/目录下的_Layout.cshtml,View目录有个_ViewStart.cshtml文件,里边的代码
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
指明了此目录下的默认布局文件是谁。可以将此代码添加到具体的View文件中来修改套用的模板页。
可以将_ViewStart.cshtml文件创建到某个子目录中,用来设定此目录中所有视图的默认母版页。
在此布局文件中,通过 @RenderBody() 代码嵌入内容页的内容。
在此页面中还支持Section(区域),在模板页中通过 @RenderSection("scripts", required: false) 嵌入视图中所定义的区域内容。
可以指定View中区域是否必须定义,View中通过如下代码定义一个区域
@section 区域名 { 区域的内容 }
部分视图
ASP.NET MVC中提供了部分视图的功能,可以让你在页面中通过如下方式,去获取部分视图的内容,并嵌入到当前页面中。
@{ Html.RenderPartial("视图名",参数); }
@Html.Partial("视图名",参数);
@{ Html.RenderAction("actionName","controllerName","传递参数"); } 例如: @{Html.RenderAction("Test", "Home", new { s=item});} //s是Action的参数名
@Html.Action("actionName","controllerName","传递参数")
其中Action表示去调用另一个Action里边的代码,通过参数传递需要的数据,通过Return PartialView(),将局部视图的内容嵌入到页面中。
其中Partial表示将另一个局部视图的内容直接嵌入到页面中,并将局部视图所需要的数据通过参数传递过去。
有Render开头的方法,局部视图的内容会被写入到当前视图的响应流中,效率稍微高一点。但是必须采用代码块方式 @{ 代码 } 调用。
不带Render开头的方法,返回的是一个字符串值,嵌入到页面中。