MVC教程一:MVC簡介

1、MVC模式

1、概述前端

一、MVC是一種流行的Web應用架構技術,他把Web應用劃分紅Model(模型)、Controller(控制器)和View(視圖)三部分。web

二、優勢:可測試、可維護設計模式

三、MVC是ASP.NET技術的子級(ASP.NET MVC),ASP.NET包括:ASP.NET WebForm和ASP.NET MVC。服務器

2、MVC簡介架構

一、MVC是什麼框架

MVC是一種軟件架構設計模式,針對具有人機交互功能的軟件和程序。工具

二、執行順序開發工具

控制器接收網頁發送的請求,若是須要請求數據,先從Model裏面取出數據,而後再交給View展現。測試

三、Web開發的本質網站

Web開發的本質流程:請求->處理->響應,WebForm方式不貼近web開發的本質。

3、建立ASP.NET MVC步驟

一、建立ASP.NET MVC項目。

文件->新建->項目->Web項目,根據須要選擇相應版本的ASP.NET MVC應用程序,點擊「肯定」:

二、在項目模板選擇界面,選擇相應的模板和視圖引擎,點擊肯定,新建一個ASP.NET MVC應用程序:

三、建立Controller控制器。

本示例以VS2012爲開發工具,建立的MVC4應用程序,須要建立控制器才能夠運行(VS2013或以上版本已經默認建立了控制器,直接就能夠運行)。

在Controllers文件夾上面點擊右鍵->添加->控制器:

輸入控制器的名稱(控制器的名稱約定以Controller結尾),選擇模板,點擊添加:

四、建立視圖。

在控制器代碼界面,在方法名稱上面點擊右鍵:選擇「添加視圖」:

在添加視圖選項卡界面,輸入視圖名稱,視圖名稱必須和方法的名稱保持一致,選擇視圖引擎,點添加:

在Views文件夾裏面會看到新添加的視圖:

4、ASP.NET MVC項目結構

新建立的MVC應用程序結構如圖所示:

一、Content文件夾

存放資源文件,例如Css文件、第三方插件等。

二、Controllers文件夾

存放MVC應用程序相關的控制器文件。

三、Models文件夾

存放除了Controller和View之外的文件。

注意:與三層結構的Models不一樣,MVC裏的Models裏面能夠放實體類、數據訪問類和業務類等。

四、Scripts文件夾

存放各類腳本文件。

五、Views文件夾

存放View文件。

六、Shared文件夾

Shared文件夾位於Views文件夾裏面,任何控制器中找不到的視圖都會去Shared文件夾下面找。

七、Web.Config

存放配置信息。

八、Global.asax

Global.asax存放應用程序啓動時要執行的代碼。

5、代碼詳解

一、Global.asax—應用程序啓動註冊路由

當對網站發出請求時,應用程序是如何把請求引到對應的控制器及裏面的Action方法
答:首先網站一啓動,會提早加載根據控制器和Action方法設置的路由規則,這樣一請求,路由就會分析以後把請求引到對應的控制器和Action方法。

RouteConfig類位於App_Start文件夾下面。

二、控制器

1)根據前面的解析,每次請求都是先定位控制器,而後再根據路由規則找到對應的Action方法!
2)可是在路由表裏,咱們只寫了Home,可是MVC框架約定,控制器都是以Controller結尾,並繼承了基類Controller!
3)在這裏Index方法返回值類型是ActionResult,方法名和路由註冊的方法名一致,在Index方法內,調用了View方法而且返回,這是一個重載的方法,能夠給個參數,做爲返回視圖的名稱,若是沒有參數,默認就是以當前Action命名的視圖。
4)也就是Asp.netMVC架構,不像Java的MVC經過配置來創建關係,他是約定大於配置。

三、視圖

1)視圖裏的代碼相似於以前的ASPX裏面的代碼,主要是HTML、JS和CSS等前端技術構成,從MVC1.0到MVC5.0變化很大,Razor語法愈來愈完善,強大!

四、向視圖傳遞數據

1)傳統的WebForm方式,前置頁面類和後置代碼類是繼承的關係,能夠直接進行數據傳遞。
2)MVC模式下,視圖和控制器是徹底分離的,經過專用渠道傳遞數據,ViewData是在控制器和視圖之間傳遞數據的容器之一。

五、ASP.NET MVC執行順序

6、Model和三層架構 

一、MVC與三層架構之間有沒有區別?
   1)MVC和三層架構沒有必然的關係,架構的思想是不同的。
   2)三層架構強調的是物理分離(多個項目構成),MVC強調的是邏輯分離(一個項目構成)。
   3)MVC中也能夠體現三層架構。

  4)有些MVC企業框架爲了方便管理,會故意把Models作分層設計。

注意:在MVC中若是它不屬於View也不屬於Controller,那麼就把它歸到Model中。

7、MVC和ASP.NET

一、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技術是另一種可選方式

二、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)對開發人員的技術水平要求更高

相關文章
相關標籤/搜索