测试需要一个主页入口点,这里使用默认的路由设置就可以测试。
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
看着代码又多又乱,看看注释应该可以明白的