測試需要一個首頁入口點,這裡使用預設的路由設定就可以測試。
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
看着代碼又多又亂,看看注釋應該可以明白的