您的位置:首页 > 编程语言 > C#

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

2012-10-08 23:55 676 查看
测试需要一个主页入口点,这里使用默认的路由设置就可以测试。

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

看着代码又多又乱,看看注释应该可以明白的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: