ASP.NET MVC概覽
ASP.NET MVC是一種構建Web應用程序的框架,它將一般的MVC(Model-View-Controller)模式應用於ASP.NET框架。
ASP.NET MVC模式簡介
MVC將Web應用程序划分為三個主要的部分,以下是MSDN給出的定義:
- 模型(Model):模型對象是實現應用程序數據域邏輯的應用程序部件。 通常,模型對象會檢索模型狀態並將其存儲在數據庫中。 例如,Product 對象可能會從數據庫中檢索信息,操作該信息,然后將更新的信息寫回到 SQL Server 數據庫內的 Products 表中。
- 視圖(View):視圖是顯示應用程序用戶界面 (UI) 的組件。 通常,此 UI 是用模型數據創建的。 Products 表的編輯視圖便是一個視圖示例,該視圖基於 Product 對象的當前狀態顯示文本框、下拉列表和復選框。
- 控制器(Controller):控制器是處理用戶交互、使用模型並最終選擇要呈現的視圖來顯示 UI 的組件。 在 MVC 應用程序中,視圖僅顯示信息;控制器則用於處理和響應用戶輸入和交互。 例如,控制器處理查詢字符串值,並將這些值傳遞給模型,而模型可能會使用這些值來查詢數據庫。
###ASP.NET MVC的發展歷程 首先,我們以一張時間軸線圖開始,了解一下ASP.NET MVC的發展歷程。 ![](http://images2015.cnblogs.com/blog/971601/201706/971601-20170605210013356-16639363.png)
- 2007年2月,Microsoft公司的Scott Guthrie在旅途中草擬了ASP.NET MVC的內核程序。經過9個預覽版本,於2009年3月13日,正式發布ASP.NET MVC1官方版本。
- 時隔一年,ASP.NET MVC2於2010年3月發布,部分主要特征如下:
- 帶有自定義模板的UI輔助程序
- 在客戶端和服務員基於特性的模型驗證
- 強類型的HTML輔助程序
- 改善的Visual Studio開發工具
- 支持將大型應用程序划分為域
- 支持異步控制器
- 使用Html.RenderAction支持渲染網頁或網站的某一部分
- 新的輔助函數、使用工具和API增強
- 10個月后,ASP.NET MVC3正式推出,部分主要特征如下:
- 支持Razor視圖引擎
- 支持.NET4數據注解
- 改進了模型驗證
- 提供更強的控制和更大的靈活性,支持依賴項解析(Dependency Resolution)和全局操作過濾器(Global Action Filter)
- 豐富的JavaScript支持,其中包括非侵入式JavaScript、jQuery驗證和JSON綁定
- 支持NuGet,可以用來發布軟件,管理整個平台的依賴
- 12年9月,ASP.NET MVC4正式發布,新增功能主要包括:
- ASP.NET Web API
- 增強了默認的項目模板
- 添加使用jQuery Mobile的手機項目模板
- 支持顯示模式(Display Mode)
- 支持異步控制器的任務
- 捆綁和微小(minification)
- 2013年10月,ASP.NET MVC5與Visual Studio 2013一起發布,下面列出了一些主要特征:
- One ASP.NET
- 新的Web項目體驗
- ASP.NET Identity
- Bootstrap模板
- 特性路由
- ASP.NET基架
- 身份驗證過濾器
- 過濾器重寫
###創建ASP.NET MVC5應用程序 本節主要講解如何使用Visual Studio快速創建ASP.NET MVC5應用程序,所有截圖均使用Visual Studio 2015,步驟如下: 1. 選擇File|New|Project選項。 2. 在New Project對話框左側的Installed|Templates|Visual C#列表下,選中Web選項,選擇ASP.NET Web Application,將應用程序命名為MyFirstMvcProject,點擊OK按鈕。 ![](http://images2015.cnblogs.com/blog/971601/201706/971601-20170605220321887-1092315309.jpg) 3. 在彈出的New ASP.NET Project對話框中,選中MVC模板,點擊OK按鈕。 ![](http://images2015.cnblogs.com/blog/971601/201706/971601-20170605220916575-166306284.jpg) 4. 至此,一個新的MVC項目已經創建完成,在應用程序根目錄下包含Project_Readme.html文件,創建項目時將自動顯示這個文件。 ![](http://images2015.cnblogs.com/blog/971601/201706/971601-20170605221207028-1027996736.jpg)
###ASP.NET MVC應用程序結構 新的MVC項目創建完成后,會自動向這個項目中創建一些目錄,下表介紹了這些目錄的主要用途。
目錄 | 用途 |
---|---|
App_Data | 用於存儲想要讀取/寫入的數據文件 |
App_Start | 用於保存一些功能的配置代碼 |
Content | 用於保存CSS、圖像和其他站點內容 |
Controllers | 用於保存處理URL請求的控制器類 |
fonts | 用於保存Bootstrap模板系統包含的一些自定義Web字體 |
Models | 用於保存表示和操縱數據以及業務對象的類 |
Scripts | 用於保存JavaScript庫文件和腳本 |
Views | 用於保存負責呈現輸出結果的UI模板文件 |
###ASP.NET MVC的約定 在默認情況下,ASP.NET MVC應用程序對約定的依賴性很強,這樣就避免了開發人員配置和指定一些項,因為這些項可以根據約定來推斷。這個概念通常被稱為“習慣優於配置(convention over configration)” ASP.NET MVC對於程序結構的約定如下: 1. 每個Controller類的名字以Controller結尾,保存在Controller目錄中。 2. 應用程序的所有視圖放在單獨的Views目錄下。 3. 控制器使用的視圖是在Views主目錄下的,與控制器名稱相同的子目錄中。
##總結
本章為此系列的第一篇,主要介紹了ASP.NET MVC的總體結構、發展歷程以及如何在Visual Studio中快速創建一個ASP.NET MVC應用程序。下一篇,將詳細介紹控制器、視圖以及模型等相關內容。