MVC教程一:MVC簡介

來源:互聯網
上載者:User

標籤:狀態   控制器   大於   config   渠道   行資料   基類   index   文法   

一、概述

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)所見即所得 (WYSIWYG),開發傻瓜化
    1.伺服器端控制項
    2.事件模型
    3.狀態管理
  2)借鑒Winforms的成功特色
  3)偏離了Web請求處理的原理
(2)Asp.net MVC的特色
  1)關注分離
    1.WebForm只是把一個頁面分成了前置頁面和後置代碼,不夠徹底
    2.MVC可以把一個頁分成三塊,分得更徹底
  2)可測試性
  3)開發更接近WEB的本質
 
4)對開發人員的技術水平要求更高

 

MVC教程一:MVC簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.