MVC教程一: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、視圖

1)視圖里的代碼類似於之前的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程序的一種可選方式
   1.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)對開發人員的技術水平要求更高

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM