测试需要一个主页入口点,这里使用默认的路由设置就可以测试。
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