_ViewStart.cshtml 佈局文件在哪里以及如何連結?
這是來自預設 MVC 3 模板的 About.cshtml:
@{ ViewBag.Title = "About Us"; } <h2>About</h2> <p> Put content here. </p>我希望在 _ViewStart 文件中可以找到對 _ViewStart 文件的引用
About.cshtml,但顯然不是。我查看了
global.asaxandweb.config,但我找不到About.cshtml文件是如何與 _ViewStart 文件中的佈局“連結”的。一切都按預期工作,我只想知道引擎蓋下發生了什麼……
來自ScottGu 的部落格:
從 ASP.NET MVC 3 Beta 版本開始,您現在可以在項目的 \Views 文件夾下添加一個名為 _ViewStart.cshtml(或 _ViewStart.vbhtml 用於 VB)的文件:
_ViewStart 文件可用於定義要在每個視圖渲染開始時執行的通用視圖程式碼。例如,我們可以在 _ViewStart.cshtml 文件中編寫程式碼,以程式方式將每個 View 的 Layout 屬性預設設置為 SiteLayout.cshtml 文件:
因為這段程式碼在每個視圖的開頭執行,我們不再需要在任何單獨的視圖文件中顯式設置佈局(除非我們想覆蓋上面的預設值)。
重要提示:因為 _ViewStart.cshtml 允許我們編寫程式碼,所以我們可以選擇性地使我們的佈局選擇邏輯更豐富,而不僅僅是一個基本的屬性集。例如:我們可以根據訪問網站的設備類型來改變我們使用的佈局模板——並為這些設備優化手機或平板電腦佈局,並為 PC/筆記型電腦優化桌面佈局。或者,如果我們正在建構一個供多個客戶使用的 CMS 系統或通用共享應用程序,我們可以在訪問站點時根據客戶(或他們的角色)選擇不同的佈局來使用。
這使得 UI 具有很大的靈活性。它還允許您更輕鬆地編寫一次視圖邏輯,並避免在多個地方重複它。
也看到這個。