当前位置:编程学习 > C#/ASP.NET >>

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

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

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>
 看着代码有多又乱,看看注释应该可以明白的

 

 

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,