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。

推薦閱讀: