中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行ASP.NET MVC應用程序執行過程的分析

發布時間:2021-11-26 18:04:45 來源:億速云 閱讀:177 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關如何進行ASP.NET MVC應用程序執行過程的分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創建一個簡單的ASP.NET MVC應用程序

ASP.NET MVC框架提供了支持Visual Studio的工程模板,從而讓你創建支持MVC模式的Web應用程序。

這些MVC工程模板包括:

“ASP.NET MVC Web Application”模板

“ASP.NET MVC Web Application and Test”模板

這些模板可以用于創建一個新的基于ASP.NET MVC框架的Web應用程序。在這些程序中,你可以使用文件夾,模板以及配置文件等手段配置它們。

默認情況下,當你使用“ASP.NET MVC Web Application and Test”模板創建一個新的Web應用程序時,Visual Studio將創建一個添加有兩個工程的方案。***個工程是一個Web工程,你可以在其中實現你的應用程序。第二個工程是一個測試工程,你可以在此為你的MVC組件編寫單元測試。

【注意】“ASP.NET MVC Web Application”模板基于“ASP.NET Web Application”模板。所以,在創建基于ASP.NET MVC框架的網站時,你需要從“File”菜單下選擇“New Project”,然后選擇一個新的ASP.NET MVC工程,而不是選擇“New Website”。

***,你可以使用任何與.NET框架兼容的單元測試框架來測試ASP.NET MVC應用程序。注意,Visual Studio 2008 Professional(以及Team System)已經提供了對于MSTest測試工程的內置的支持。

Web應用程序的MVC工程架構

當你創建一個ASP.NET MVC應用程序工程時,諸MVC組件將基于如圖1所示的工程文件夾加以分離:

如何進行ASP.NET MVC應用程序執行過程的分析

圖1—一個ASP.NET MVC應用程序的典型架構

Views文件夾。該Views文件夾是推薦的放置你的視圖的位置。視圖組件主要使用.aspx,.ascx和.master文件實現;此外,也有可能使用其他任何與視圖有關聯的文件。Views文件夾下針對每一個控制器都提供一個獨立的文件夾,而且此文件夾以該控制器的名字為前綴命名。例如,如果你有一個名字為HomeController的控制器,那么你的Views文件夾下應該包含一個名字為Home的文件夾。默認情況下,當ASP.NET MVC框架加載一個視圖時,它將首先在Views\controllerName文件夾下使用要求的視圖名查找一個相應的.aspx文件。此外,還存在一個缺省名字為Common的文件夾,不過它沒有對應任何控制器。你可以在這個位置放置母版頁面,腳本,CSS文件,以及其它當生成視圖時所使用的文件。

Controllers文件夾。Controllers文件夾是推薦的放置控制器的位置。

Models文件夾。該Models文件夾是推薦的放置你的MVC Web應用程序的模型的位置。典型情況下,這里會包括定義與數據存儲進行交互的邏輯代碼,還有對象定義等等。

App_Data。App_Data文件夾對應存儲數據的物理位置。這個文件夾與在ASP.NET Web應用程序中的角色一樣。

除了上面列舉的文件夾外,一個MVC Web應用程序還使用下列一些重要的應用程序元素:

Global.asax和Global.asax.cs。在文件Global.asax.cs的Application_Start方法中實現對路由的初始化。下面的代碼展示了一個典型的Global.asax文件,其中包括了默認的路由邏輯。

public class Global : System.Web.HttpApplication   {     protected void Application_Start(object sender, EventArgs e)     {       //注意:如果把下列表達改寫成Url="{controller}.mvc/{action}/{id}"即可自動支持IIS6          RouteTable.Routes.Add(new Route       {         Url = "{controller}/{action}/{id}",         Defaults = new { action = "Index", id = (string)null },         RouteHandler = new MvcRouteHandler()       });          RouteTable.Routes.Add(new Route       {         Url = "Default.aspx",         Defaults = new { controller = "Home", action = "Index", id = (string)null },         RouteHandler = new MvcRouteHandler()       });     }   }

配置文件。MVC Web應用程序配置文件Web.config負責注冊HTTP模塊。在httpModules節中實現注冊UrlRoutingModule類,這個類負責分析URL并且把請求路由到適當的處理器。注意,這個入口能夠支持應用程序在同一個工程中宿主MVC與非MVC處理器。

下列代碼展示了一個ASP.NET MVC應用程序的httpModules節的內容:

< httpModules>  < add name="UrlRoutingModule"    type="System.Web.Mvc.UrlRoutingModule,     System.Web.Extensions, Version=3.6.0.0, Culture=neutral,     PublicKeyToken=31BF3856AD364E35" /> < /httpModules>

當你在Visual Studio 2008 Professional(或Team System)選擇一個ASP.NET MVC Web應用程序和測試工程模板時,方案中將自動包括一個測試工程。你可以使用MVC模板來創建測試以及內在接口的mock實現。

理解MVC工程的執行過程

一個發送到ASP.NET MVC的Web應用程序請求首先要傳遞到UrlRoutingModule對象(這是一個HTTP模塊)。然后,UrlRoutingModule對象分析該請求并執行路由選擇。值得注意的是,UrlRoutingModule將選擇匹配當前請求的***個路由(Route)對象。

接下來,UrlRoutingModule對象從選擇的路由對象中取得IHttpContext對象—由它進一步處理請求。默認情況下,這個IHttpContext就是MvcHandler對象。然后,MvcHandler對象進一步選擇相應的控制器,最終由此控制器來處理該請求。

【注意】當一個ASP.NET MVC Web應用程序運行于IIS7環境下時,并不要求為MVC工程指定文件的擴展名。然而,在IIS6中,處理器要求你把.mvc文件擴展名映射到ASP.NET ISAPI中。

模塊和處理器成為指向ASP.NET MVC框架的入口,并執行下列動作:

◆在一個MVC Web應用程序中選擇適當的控制器

◆獲取一個特定的控制器實例

◆調用該控制器的Execute方法

表格1更細致地描述了一個MVC Web工程的各個執行階段。

表格1—MVC Web工程的各個執行階段

階段

詳細描述

初始請求

Global.asax文件中,把路由添加到RouteTable對象。

路由

UrlRoutingModule模塊根據RouteTable實例中匹配的Route對象創建RouteData對象。這些路由數據用于決定所請求的控制器及要調用的行為。

映射到控制器

MvcRouteHandler處理器負責根據RouteData實例中的數據創建控制器類型名。

調用控制器構建程序(controllerbuilder

處理器調用ControllerBuilder類的全局靜態CreateController方法從而得到一個IController實例。如果沒有返回一個IController實例,那么該處理器將返回一個HTTP 500錯誤指示出現了服務器錯誤。

創建控制器

ControllerBuilder實例直接創建一個新的控制器,或使用一個IControllerFactory對象來創建該控制器。

執行控制器

MvcHandler實例被添加到ControllerContext對象中并調用該控制器的Execute方法。


我們對微軟推出的MVC(模型—視圖—控制器)模式進行了理論的剖析,并把它與傳統的ASP.NET Web表單模式和頁面回寄方案進行了對比。在了解了MVC框架各組件主要功能之后,***我們對一個典型的MVC Web工程的各個執行階段作了粗略的歸納。

需要注意的是,ASP.NET MVC模式是微軟***推出的一種開發模式,目前***測試版本為Preview 2(Preview 3也即將問世)。因此,這一模式是否較之于ASP.NET Web表單模式更有利于提高軟件的生產效率還有待于開發實踐的檢驗。

以上就是如何進行ASP.NET MVC應用程序執行過程的分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开江县| 商丘市| 容城县| 阳西县| 哈密市| 喀什市| 南郑县| 潼南县| 禹州市| 贵南县| 百色市| 怀来县| 凯里市| 沭阳县| 于田县| 吉水县| 荥经县| 格尔木市| 凤凰县| 喀喇| 霍州市| 岳阳市| 织金县| 昭苏县| 伊春市| 柘城县| 竹溪县| 商丘市| 博兴县| 庆安县| 靖宇县| 栾川县| 平原县| 通河县| 广宗县| 清河县| 长宁县| 公安县| 景宁| 衡东县| 洮南市|