ASP.NET MVC 架構之執行流程(二)

來源:互聯網
上載者:User

一,基本概念:
在傳統情況下,http: //localhost/Default.aspx表示請求網站根目錄下的Default.aspx檔案。
在ASP.NET MVC中,Routing處理一切請求,然後從請求的URL中確定controller名稱、action名稱和各種參數。
Controller執行對應的Action,Action處理表現邏輯或者跳轉等。預設是不執行任何xxx.aspx檔案請求的。
這也是使用了ASP.NET MVC後與傳統ASP.NET應用最大的差別。詳細流程如下,
二,架構執行順序:


如所示,
首先,使用者通過Web瀏覽器向伺服器發送一條url請求,這裡請求的url不再是xxx.aspx格式,而是http:// HostName/ControllerName/ActionName/Parameters的樣子。
這個請求被ASP.NET MVC的路由映射系統截獲。路由映射系統按照映射規則,解析出控制器名ControllerName,Action名ActionName和各個參數Parameters,然後,找尋Controllers目錄下的ControllerNameController.cs這個控制器類,預設情況下,系統總是找尋Controllers目錄下的“控制器名+Controller”這麼一個類。
然後,找尋這個類下與ActionName同名的方法,找到後,將Parameters作為參數傳給這個方法,而後Action方法開始執行,執行後返回的是ActionResult類型(可以是view、json、redirect等)。
ActionResult其中的一個類型是視圖,預設情況下,會返回Views目錄下與ControllerName同名的目錄下的與ActionName同名的aspx檔案,並且將ViewData傳遞到視圖。ViewData中一般包含了控制視圖顯示的控制量以及視圖顯示需要的資料,ViewData是控制器與View傳遞資料的方法之一。
      我們按以上思路回顧一下上一篇中首頁的請求過程。我們傳遞的url是http: //localhost/Home/Index。預設路由規則下,將ControllerName設為“Home”,ActionName設為“Index”,沒有參數。
於是系統找尋Controllers目錄下的HomeController類的Index方法,成功找到,於是執行之。
這個方法調用Model取出一些資料,放入ViewData相應索引值項裡。然後返回視圖,返回的是Views下Home下的Index.aspx。
這個視圖取出ViewData中的資料按照一定格式呈現,於是完成了一次典型的ASP.NET MVC調用。

下一篇中我們將詳細介紹URL routing。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.