MVC基础知识-View
ViewBag本質上是一個字典,它提供了一種View可以訪問的動態數據存儲,這用到了.NET4.0的動態語言特性,你可以給ViewBag添加任意的屬性,這個屬性是動態創建的,你不需要修改類的定義,就可以從View中訪問
View和Action之間數據傳遞(前后臺數據傳遞)
? 弱類型 ViewData[""]
? 動態型 ViewBag //dynamic
? 動態類型Model
???????????? 后臺:return View(data); //存入 ViewData.Model
???????????? 前臺:Model //其實就是 WebViewPage.Model
?
public ActionResult Index()
{
Employee data = new Employee();
data.Name = "張三";
data.Age = 26;
return View(data);
}
?
1.@RenderBody()? //模板頁里的占位符
2.@{
?? Layout = "~/Views/Shared/MyLayout.cshtml";
?? View.Title="Employee";
}
<p>子頁所有html代碼都將替換到 模板頁的@RenderBody()處</p>
應用整體視圖模板 - 多個"占位符"
?
3.模板頁多個節:
?? <footer>@RenderSection("Footer")</footer>
?? 子頁面定義節點:
@section Footer{<b>這里是腳部區域!</b>}模板頁判斷是否為布局節方法,IsSectionDeined
@if(IsSectionDefined("Footer")){@RenderSection("Footer");}else{<b>“子頁面”沒有Footer~</b>}
Razor 布局 – ViewStart
每個子頁面都使用一個Layout指定布局。如果多個視圖都用同一個布局就會產生冗余,修改維護麻煩。
_ViewStart.cshtml 可解決此問題
此文件代碼優先于同目錄及子目錄下任何視圖代碼執行
View目錄下自動添加的_ViewStart.cshtml
?
@{Layout = "~/Views/Shared/_Layout.cshtml";}其實我們的cshtml視圖頁面,在被訪問的時候,也編譯成了頁面類,繼承于:WebViewPage<T>
在View頁面,添加代碼
?
<div>@{Response.Write(this.GetType().Assembly.Location);}</div>運行結果:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\vs\0282ae3e\58806453\App_Web_irdyebpa.dll
轉載于:https://www.cnblogs.com/xiaoheqin/p/5755897.html
總結
以上是生活随笔為你收集整理的MVC基础知识-View的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: easyui自学模板代码
- 下一篇: 也谈如何构建高性能服务端程序