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

ASP.NET課程設計案例精編

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

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

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

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

評論