asp.net mvc 4 高级编程学习笔记:第三章 视图(2)

页面布局

 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开头的方法,返回的是一个字符串值,嵌入到页面中。

原文地址:https://www.cnblogs.com/feihusurfer/p/3990650.html