ASP.NET MVC框架簡介
一、MVC模式
概述
1、MVC是一種流行的Web應用架構技術,他把Web應用劃分成Model(模型)、Controller(控制器)和View(視圖)三部分。
2、優點:可測試、可維護
3、MVC是ASP.NET技術的子級(ASP.NET MVC),ASP.NET包括:ASP.NET WebForm和ASP.NET MVC。
二、MVC簡介
1、MVC是什麼
MVC是一種軟件架構設計模式,針對具備人機交互功能的軟件和程序。
2、執行順序
控制器接收網頁發送的請求,如果需要請求數據,先從Model裡面取出數據,然後再交給View展示。
3、Web開發的本質
Web開發的本質流程:請求->處理->響應,WebForm方式不貼近web開發的本質。
三、創建ASP.NET MVC步驟
1、創建ASP.NET MVC項目。
文件->新建->項目->Web項目,根據需要選擇相應版本的ASP.NET MVC應用程序,點擊“確定”:
2、在項目模板選擇界面,選擇相應的模板和視圖引擎,點擊確定,新建一個ASP.NET MVC應用程序:
3、創建Controller控制器。
本示例以VS2012為開發工具,創建的MVC4應用程序,需要創建控制器才可以運行(VS2013或以上版本已經默認創建瞭控制器,直接就可以運行)。
在Controllers文件夾上面點擊右鍵->添加->控制器:
輸入控制器的名稱(控制器的名稱約定以Controller結尾),選擇模板,點擊添加:
4、創建視圖。
在控制器代碼界面,在方法名稱上面點擊右鍵:選擇“添加視圖”:
在添加視圖選項卡界面,輸入視圖名稱,視圖名稱必須和方法的名稱保持一致,選擇視圖引擎,點添加:
在Views文件夾裡面會看到新添加的視圖:
四、ASP.NET MVC項目結構
新創建的MVC應用程序結構如圖所示:
1、Content文件夾
存放資源文件,例如Css文件、第三方插件等。
2、Controllers文件夾
存放MVC應用程序相關的控制器文件。
3、Models文件夾
存放除瞭Controller和View以外的文件。
註意:與三層結構的Models不同,MVC裡的Models裡面可以放實體類、數據訪問類和業務類等。
4、Scripts文件夾
存放各種腳本文件。
5、Views文件夾
存放View文件。
6、Shared文件夾
Shared文件夾位於Views文件夾裡面,任何控制器中找不到的視圖都會去Shared文件夾下面找。
7、Web.Config
存放配置信息。
8、Global.asax
Global.asax存放應用程序啟動時要執行的代碼。
五、代碼詳解
1、Global.asax—應用程序啟動註冊路由
當對網站發出請求時,應用程序是如何把請求引到對應的控制器及裡面的Action方法
答:首先網站一啟動,會提前加載根據控制器和Action方法設置的路由規則,這樣一請求,路由就會分析之後把請求引到對應的控制器和Action方法。
RouteConfig類位於App_Start文件夾下面。
2、控制器
- 1)根據前面的解析,每次請求都是先定位控制器,然後再根據路由規則找到對應的Action方法!
- 2)但是在路由表裡,我們隻寫瞭Home,但是MVC框架約定,控制器都是以Controller結尾,並繼承瞭基類Controller!
- 3)在這裡Index方法返回值類型是ActionResult,方法名和路由註冊的方法名一致,在Index方法內,調用瞭View方法並且返回,這是一個重載的方法,可以給個參數,作為返回視圖的名稱,如果沒有參數,默認就是以當前Action命名的視圖。
- 4)也就是Asp.netMVC架構,不像Java的MVC通過配置來建立關系,他是約定大於配置。
3、視圖
視圖裡的代碼類似於之前的ASPX裡面的代碼,主要是HTML、JS和CSS等前端技術構成,從MVC1.0到MVC5.0變化很大,Razor語法越來越完善,強大!
4、向視圖傳遞數據
1)傳統的WebForm方式,前置頁面類和後置代碼類是繼承的關系,可以直接進行數據傳遞。
2)MVC模式下,視圖和控制器是完全分離的,通過專用渠道傳遞數據,ViewData是在控制器和視圖之間傳遞數據的容器之一。
5、ASP.NET MVC執行順序
六、Model和三層架構
1、MVC與三層架構之間有沒有區別?
- 1)MVC和三層架構沒有必然的關系,架構的思想是不一樣的。
- 2)三層架構強調的是物理分離(多個項目構成),MVC強調的是邏輯分離(一個項目構成)。
- 3)MVC中也可以體現三層架構。
- 4)有些MVC企業框架為瞭方便管理,會故意把Models做分層設計。
註意:在MVC中如果它不屬於View也不屬於Controller,那麼就把它歸到Model中。
七、MVC和ASP.NET
1、ASP.NET MVC和ASP.NET
- (1)ASP.NET MVC是ASP.NET技術的子集。
- (2)ASP.NET MVC是在核心ASP.NET基礎之上構建
- 1.依賴於HttpHandler,如請求是如何進入控制器的
- 2.依賴於Session、Cookie、Cache、Applaction等狀態保持機制
- 3.使用HttpContext、Request、Response、Server等對象
- 4.在Controller使用智能感知很容易得到這些對象
- (3)ASP.NET MVC是.NET中編寫WEB程序的一種可選方式
WebForms技術是另外一種可選方式
2、MVC和WebForms
(1)WebForms的特色
- 1)所見即所得,開發傻瓜化
- 1.服務器端控件
- 2.事件模型
- 3.狀態管理
- 2)借鑒Winforms的成功特色
- 3)偏離瞭Web請求處理的原理
(2)Asp.net MVC的特色
- 1)關註分離
- 1.WebForm隻是把一個頁面分成瞭前置頁面和後置代碼,不夠徹底
- 2.MVC可以把一個頁分成三塊,分得更徹底
- 2)可測試性
- 3)開發更接近WEB的本質
- 4)對開發人員的技術水平要求更高
到此這篇關於ASP.NET MVC框架的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- ASP.NET MVC格式化日期
- ASP.NET MVC把表格導出到Excel
- ASP.NET中HttpContext對象下的屬性介紹
- ASP.NET MVC視圖尋址
- ASP.NET Core中實現全局異常攔截的完整步驟