C# Mvc.net 3.0 Razor Leyout布局视图使用介绍

it2022-05-05  97

测试需要一个主页入口点,这里使用默认的路由设置就可以测试。

1.首先在默认的 homecollector 中建立一个 action,如下

    public ActionResult index()     {       return View();     }

 

2.在 view/home 文件件下建立 MyLeyout.cshtml 视图,内容如下

@{     //some code } <!DOCTYPE html>

<html> <head>     <title>@ViewBag.Title</title> </head> <body>     <div>         开始渲染Body<br />         @RenderBody()         渲染Body结束<br />         <br />         开始渲染 ViewPage1<br />         @RenderPage("~/Views/Home/ViewPage1.cshtml")         结束渲染 ViewPage1<br />         <br />         开始渲染 ViewPage2<br />         @RenderPage("~/Views/Home/ViewPage2.cshtml")         结束渲染 ViewPage2<br />         <br />         学习Section用法了<br />         开始渲染Section<br />         声明方式1(推荐):SectionA:<br />         @*引用页无标记也不会异常,第二个叁数如果为 true 则要求引用页必须存在 SectionA 标签*@         @RenderSection("SectionA", false)         -------<br />                 声明方式2:SectionB:<br />           @{               //判断是否存在标记 SectionB               if (IsSectionDefined("SectionB"))               {                   @RenderSection("SectionB")               }           }         -------<br />                 声明方式3:SectionC:<br />           @{             //我们测试没有定义过的 SectionC,页面将出现异常             //@RenderSection("SectionC") //测试时将注释打开           }         -------<br />         渲染Sction结束<br />     </div> </body> </html>

 

3.在view/home 文件夹下建立一个 index.cshtm 文件,内容如下

 

@{   ViewBag.Title = "首页";   Layout = "~/Views/home/MyLeyout.cshtml"; } <!-- 渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderBody() 占位符 --> <div>     这里就是渲染Body啦. </div>

<!--  ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionA", false) 占位符需要的 siction 定义 --> @section SectionA{     <div>这里是SectionA: 在 index 页中声明的</div> }

<!--  ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionB") 占位符需要的 siction 定义,注意使用 IsSectionDefined("SectionB") 判断一下 --> @section SectionB{     <div>这里是SectionB: 也是在 index 页中声明的</div> }

<!--  ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderSection("SectionC") 占位符,  这里没有定义,如果代码注释打开就报异常了,以为没有做判断占位符是否存在。 -->

4.同上位置,建立 ViewPage1.cshtml 视图

 

@{   //ViewBag.Title = "首页";   Layout = null; } <!-- 渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderPage() 占位符 ,RenderPage 占位符可以使用多次 --> <div>     这里就是渲染 viwpage1.chatml 的所有内容了 </div>

 

5.同上位置,建立 ViewPage2.cshtml 视图 ,证明 RenderPage() 占位符可以多次声明

 

@{   //ViewBag.Title = "首页";   Layout = null; } <!-- 渲染整个页面到 ~/Views/EBusiness/MyLeyout.cshtml 中的 RenderPage() 占位符 ,RenderPage 占位符可以使用多次 --> <div>     这里就是渲染 viwpage2.chatm2 的所有内容了 </div>

万事具备就差测试了,录入网址 http://170.0.0.1/home/index 

看着代码又多又乱,看看注释应该可以明白的

 

 

 

 

转载于:https://www.cnblogs.com/xxj-jing/archive/2012/10/08/2890047.html


最新回复(0)