Dot-Net

_ViewStart.cshtml 佈局文件在哪里以及如何連結?

  • February 15, 2012

這是來自預設 MVC 3 模板的 About.cshtml:

@{
   ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
    Put content here.
</p>

我希望在 _ViewStart 文件中可以找到對 _ViewStart 文件的引用About.cshtml,但顯然不是。

我查看了global.asaxand web.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 具有很大的靈活性。它還允許您更輕鬆地編寫一次視圖邏輯,並避免在多個地方重複它。

也看到這個

引用自:https://stackoverflow.com/questions/9300410