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