在講解關(guān)于MVC文件架構(gòu)之前,我們先來創(chuàng)建一個MVC的項目。
創(chuàng)建MVC項目
首先,我們使用Visual Studio2019創(chuàng)建一個MVC架構(gòu)的應(yīng)用程序(Visual Studio2019下載及安裝,可點擊下方 閱讀原文 到我的博客中查找相關(guān)文章)。步驟如下:
首先打開VS2019,在啟動頁選擇【創(chuàng)建新項目】。
然后選擇創(chuàng)建 ASP.NET Web 應(yīng)用程序。
填寫項目名稱,點擊創(chuàng)建。
選擇MVC,去掉高級選項中的【為HTTPS配置】,然后點擊創(chuàng)建。
這時我們的MVC結(jié)構(gòu)的項目就創(chuàng)建完成了,目錄結(jié)構(gòu)如下:
至此,我們第一個MVC項目就創(chuàng)建完成了,后續(xù)的網(wǎng)站開發(fā)都是基于這個架構(gòu)完成的。下面我講下關(guān)于MVC的目錄結(jié)構(gòu)。
MVC目錄結(jié)構(gòu)
MVC的目錄結(jié)構(gòu)大體如下:
-
Views(視圖)
存放與應(yīng)用程序有關(guān)的 HTML 文件。
-
存放負(fù)責(zé)處理用戶輸入及響應(yīng)的控制器類。
-
Models(模塊)
存放用來顯示到HTML中的程序模型類。
-
App_Start(入口處理程序)
包含應(yīng)用程序的配置邏輯文件。
-
App_Data(應(yīng)用程序存儲文件)
用來存儲應(yīng)用程序數(shù)據(jù)。通常以文件形式包含數(shù)據(jù)存儲。
-
Content(存放靜態(tài)文件)
頁面顯示用到的靜態(tài)文件,例如樣式表css文件,圖標(biāo),圖片等內(nèi)容。
-
Scripts(存放JavaScript文件)
存放js文件。
-
fonts(存放字體文件)
存放字體文件。
-
Global.asax(全局程序設(shè)置)
主要是web應(yīng)用程序的全局設(shè)置文件。
-
packages.config(管理NuGet包)
用于跟蹤管理已安裝的軟件包及其各自的版本。
11. Web.config(網(wǎng)站配置)
存放一些應(yīng)用程序用到的配置信息。
MVC的目錄結(jié)構(gòu)基本上就是這些了。這里每個文件在應(yīng)用程序中都有其作用,下面我講下每個文件的用處是什么。
MVC架構(gòu)下的文件都有哪些作用?
Global.asax(全局配置文件)
global.asax這個文件包含的是全局應(yīng)用程序事件的事件處理程序。
簡單來說,我們可以在這個文件中添加一些整個應(yīng)用程序運(yùn)行過程中都可調(diào)用的代碼。比如,我們添加一個當(dāng)應(yīng)用程序遇到異常時就進(jìn)入到此文件來處理的代碼,那么當(dāng)應(yīng)用程序在運(yùn)行過程中遇到了異常,則會調(diào)用這段代碼,那么我們就可以控制當(dāng)程序報錯了,給用戶一個反饋界面,讓用戶體驗更好一些。
再比如,我們可以添加一個當(dāng)應(yīng)用程序啟動時,適用于全局范圍的初始化代碼,例如路由規(guī)則,篩選規(guī)則,文件捆綁規(guī)則等,那么這些規(guī)則在接下來所有的應(yīng)用程序中都適用。我們創(chuàng)建的MVC項目默認(rèn)給我們添加了這三個規(guī)則。如圖:
可以看到,MvcApplication類繼承自HttpApplication,HttpApplication是定義對 ASP.NET 應(yīng)用程序內(nèi)所有應(yīng)用程序?qū)ο蠊玫姆椒ā傩院褪录K詆lobal中能處理的事件不止我剛才提到的兩種,更多詳細(xì)內(nèi)容可點擊 閱讀原文 到我的博客中查找相關(guān)的文章。
如圖所示,Application_Start函數(shù)是應(yīng)用程序入口,也就是說,當(dāng)應(yīng)用程序啟動時,會先調(diào)用這個方法。
再看方法內(nèi)部,它給所有后續(xù)的程序注冊了路由,篩選,打包器三個規(guī)則,但這三個規(guī)則沒有直接寫在函數(shù)中,而是調(diào)用了App_Start文件下的配置類來管理。接下來我們就來看App_Start這個文件夾的作用。
App_Start文件夾
App_Start文件夾在MVC架構(gòu)中是存放應(yīng)用程序啟動時全局配置的邏輯文件。當(dāng)我們創(chuàng)建MVC項目后,會自動生成以下三個文件:
-
BundleConfig(打包器)
作用:將靜態(tài)文件(例如css,js文件)打包,便于調(diào)用。
-
FilterConfig(過濾器)
-
RouteConfig(路由器)
作用:將瀏覽器的URL請求映射到特定的MVC控制器動作。也就是將網(wǎng)站的URL不再以.html或.aspx結(jié)尾,而是設(shè)定為統(tǒng)一的模式來顯示。
Controller
MVC的核心就是Controller(控制器),它負(fù)責(zé)處理瀏覽器傳送過來的所有請求,并決定要將什么內(nèi)容響應(yīng)給瀏覽器。Controller文件夾下儲存的就是各種控制器文件。
控制器本身只是一個類,該類有許多方法。在這些方法中,只要是公開方法,該方法就會被視為是一種動作(Action)。只要有動作存在,就可以通過該動作方法接收網(wǎng)頁請求并決定響應(yīng)視圖。
同時,按照MVC的約定,控制器文件需符合以下規(guī)則:
- Controller必須為公開類;
- Controller名稱必須以Controller結(jié)尾;
- 必須繼承自MVC內(nèi)建的Controller類;
- 所以Action動作方法必須為公開方法。
關(guān)于Controller的使用方法我會在后續(xù)文章中詳細(xì)說明。
Models
Models文件夾下,儲存的是最終顯示到View頁面中的視圖模型。Model主要負(fù)責(zé)維持?jǐn)?shù)據(jù)狀態(tài),通過它將數(shù)據(jù)從數(shù)據(jù)庫中檢索出來傳遞給Controller處理,客戶端傳過來的數(shù)據(jù)也是通過Model傳回數(shù)據(jù)存儲系統(tǒng)中。
可以說,Model(視圖模型)是View(視圖)連接數(shù)據(jù)庫的一個橋梁,它將呈現(xiàn)在用戶面前的內(nèi)容轉(zhuǎn)換為可存儲在數(shù)據(jù)庫中的內(nèi)容,也是非常重要的。
Views
View主要用于呈現(xiàn)數(shù)據(jù)。由于Controller和相關(guān)的Service處理完業(yè)務(wù)邏輯并將結(jié)果打包成了Model實體,所以View只需要負(fù)責(zé)將Model實體轉(zhuǎn)換為視圖呈現(xiàn)出來。更詳細(xì)的內(nèi)容我會在后續(xù)文章中加以說明。
Web.config
Web.config是一個配置文件,是基于XML的文本文件。
在發(fā)布Web應(yīng)用程序時,Web.config文件并不編譯進(jìn)dll文件中,它主要存儲一些ASP.NET應(yīng)用程序的配置信息,比如上傳文件的保存路徑可配置在appSettings節(jié)點;數(shù)據(jù)庫連接字符可保存在connectionStrings節(jié)點;用于定義自定義錯誤信息的customErrors節(jié)點等等…
總結(jié)
通過本文可以了解到,如何創(chuàng)建第一個MVC項目、MVC框架的目錄結(jié)構(gòu)以及MVC下主要文件的作用。更多MVC5框架內(nèi)容可關(guān)注我后續(xù)文章。
-
控制器
+關(guān)注
關(guān)注
114文章
17089瀏覽量
184104 -
Asp.net
+關(guān)注
關(guān)注
0文章
36瀏覽量
14082 -
MVC
+關(guān)注
關(guān)注
0文章
73瀏覽量
14127
發(fā)布評論請先 登錄
鼎普科技誠聘.net開發(fā)工程師
北大青鳥asp.net教程
Programming Microsoft ASP.NET

ASP.NET課程設(shè)計案例精編

Web Service和ASP.NET在GIS中的應(yīng)用探討
Asp.net MVC框架自定義視圖引擎的實現(xiàn)
《ASP.NET 2.0網(wǎng)絡(luò)開發(fā)技術(shù)》 ASP.NET 2.0核
《ASP.NET 2.0網(wǎng)絡(luò)開發(fā)技術(shù)》 走進(jìn)ASP.NET 2.
如何使用MVC來開發(fā)音樂商店網(wǎng)站?

常用HTML、CSS那你知道ASP.NET嗎?
ASP.NET MVC5教學(xué)之Global.asax文件

ASP.NET MVC5教學(xué)之過濾器(上)

ASP.NET MVC5教學(xué)之過濾器(下)

評論