ASP.NET MVC中_ViewStart.cshtml作用介紹
一、引言
_ViewStart.cshtml是在ASP.NET MVC 3.0及更高版本以后出現(xiàn)的,用Razor模板引擎新建項目后,Views目錄下面會出現(xiàn)一個這樣的文件:

打開_ViewStart.cshtml文件,里面只有一行代碼:

這行代碼表示使用Views文件夾下的Shared下面的_Layout.cshtml進行布局

二、作用
- _ViewStart.cshtml是一個在呈現(xiàn)View文件的時候的啟動文件,會在所有View(.cshtml)被執(zhí)行之前執(zhí)行,主要用于一些不方便或不能再母版(_Layout.cshtml)中進行的統(tǒng)一操作。譬如你有很多個沒有繼承關系的母版或不使用母版的單頁。
- 在_ViewStart.cshtml中,我們可以定義一些參數(shù)或做一些判斷,定義過程、語法和普通的頁面沒有任何差別。
- 在View被呈現(xiàn)的時候才會調(diào)用_ViewStart.cshtml,如果一個View是按照PartialView的方式輸出的,則不會觸發(fā)_ViewStart.cshtml中的代碼。
- 如果在Views的某個目錄下(例如Home目錄)也有一個同名的_ViewStart.cshtml文件,那么這個_ViewStart.cshtml也會被調(diào)用,但是最先被調(diào)用的還是最外面的_ViewStart.cshtml,然后才是Home目錄下的_ViewStart.cshtml文件。
三、啟動順序
在Controller的Action方法上面添加斷點調(diào)試,會發(fā)現(xiàn)_ViewStart.cshtml、Layout.cshtml、Index.cshtml三個視圖頁的執(zhí)行順序如下:
- _ViewStart.cshtml
- Index.cshtml
- Layout.cshtml
四、測試
在新建一個視圖的時候,會讓你選擇是否使用布局頁,如果選擇了布局頁,那么就默認會使用_ViewStart.cshtml里面指定的布局視圖:

這樣設置就表示使用_ViewStart.cshtml里面指定的Layout布局頁。
修改一下新創(chuàng)建的視圖頁代碼
@{
ViewBag.Title = "TestView";
}
<h2>這是測試視圖頁</h2>然后瀏覽新創(chuàng)建的視圖頁

可以看到:除了我們剛才在視圖頁代碼里面添加的一行文字意外,還有其它布局,這就是因為使用了布局頁。
這時如果不想在使用布局頁,那么就需要修改Layout了,修改代碼如下:
@{
ViewBag.Title = "TestView";
// 指定Layout為null則表示不在使用布局頁
Layout = null;
}
<h2>這是測試視圖頁</h2>在瀏覽頁面

這時就不會使用布局頁了。
如果新建視圖的時候,不勾選使用布局頁,則也不會使用

生成的視圖頁代碼
@{
// 這里自動設置Layout為null
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>TestViewWithNull</title>
</head>
<body>
<div>
不使用布局頁
</div>
</body>
</html>然后瀏覽新添加的視圖

到此這篇關于ASP.NET MVC中_ViewStart.cshtml作用的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
ASP.NET?Core?MVC路由(Routing)的用法
這篇文章介紹了ASP.NET?Core?MVC路由(Routing)的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
.NET?6更新使.NET生態(tài)系統(tǒng)蛻變
微軟正式發(fā)布.NET最新長期支持版本.NET?6,這個版本的更新重點,除了C#和F#都有許多語言功能改進之外,.NET?6終于集大成,成為跨瀏覽器、云計算、桌面、物聯(lián)網(wǎng)和移動應用程序的統(tǒng)一平臺,性能也獲得大幅提升,并且更完整支持Arm642022-01-01
ASP.NET?Core在Linux下為dotnet創(chuàng)建守護進程
本篇主要是怎么樣為我們在Linux或者macOs中部署的dotnet程序創(chuàng)建一個守護進程,來保證我們的程序在異?;蛘呤请娔X重啟的時候仍然能夠正常訪問。需要的朋友可以收藏下,方便下次瀏覽觀看2021-12-12

