什麼是MVC:
MVC(Model-View-Controller,模型—視圖—控制器模式)用於表示一種軟件架構模式。它把軟件系統分爲三個基本部分:模型(Model),視圖(View)和控制器(Controller)。使用MVC的目的是將模型和視圖的實現代碼分離,從而使同一個程序可以使用不同的表現形式。比如:一批統計數據可以分別用柱狀圖、餅圖來表示。控制器存在的目的則是確保model和view的同步,一旦model改變,view應該同步更新。
M-V-C各自的作用:
Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。通常模型對象負責在數據庫中存取數據。
View(視圖)是應用程序中處理數據顯示的部分。通常視圖是依據模型數據創建的。
存放各個控制器對應的視圖文件,如果是Razor引擎的話後綴是cshtml。如果使用WebForm的視圖引擎的話,後綴是Aspx。視圖代碼的編寫更接近純淨的Html,而View層代碼的書寫又直接跟視圖引擎解析的規則有關,所以Razor的語法跟WebForm視圖的語法截然不同。更傾向於Razor。
Controller(控制器)是應用程序中處理用戶交互的部分。通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據;或者從Model中獲取數據,並將數據交給View。
在Controller文件夾添加的以Controller結尾的類就是控制器,他的每個方法就是一個Action。它並不控制View的顯示邏輯,只是將Model中的數據交個View,而具體怎樣展示數據那是View的職責。
(Controller和Model中的代碼,一般都採用C#語言。View中一般:HTML和Razor)
新建一個MVC項目後系統自動創建的文件夾簡介:
當我們新建一個MVC項目後,系統自動爲我們創建如下的文件夾:
下面一一介紹:
Controllers |
存放控制器類【職責是:處理用戶的請求,指揮具體的頁面進行渲染交給客戶端】 |
/Views |
存放各個控制器對應的視圖文件,如果是Razor引擎的話那後綴是cshtml.如果使用的WebFrom的視圖引擎的話,那還是Aspx後綴。 |
/Content |
主要存放照片、CSS、Flash等文件 |
/Scripts |
主要存放腳本文件【微軟默認給我們提供了JQuery1.5.1的包】 |
/Models |
主要存放ViewModel類【當然這個不是嚴格這樣要求的,而是推薦你這麼做。】 |