我正在學習圍繞MVC 4應用程序的方法,但對mvc平臺很陌生。如果我正在學習一個新的Java應用程序,我將開始從主要方法中讀取代碼並從那裏開始。什麼是一個asp.net mvc應用程序的模擬?asp.net mvc 4應用程序的入口點是什麼?
我啓動從以下網址的應用程序:http://server/directory/home?iv-user=tuser
我正在學習圍繞MVC 4應用程序的方法,但對mvc平臺很陌生。如果我正在學習一個新的Java應用程序,我將開始從主要方法中讀取代碼並從那裏開始。什麼是一個asp.net mvc應用程序的模擬?asp.net mvc 4應用程序的入口點是什麼?
我啓動從以下網址的應用程序:http://server/directory/home?iv-user=tuser
這是HTTP。如上所述,您向Web服務器請求資源,並且控制器響應。
所以在ASP.NET MVC中,您有多個入口點:每個操作方法。
在這種情況下,你給了,如果你想找到被執行的非框架代碼第一位,你會尋找HomeController.cs
在Controllers
目錄並查找Index
或Default
方法,該方法將接受參數iv-user
。
要查看完整頁面生命週期,請看這裏:http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/entrypage/be-ahead-of-the-game-poster2。這會將您從傳入的HTTP請求轉到最終呈現的視圖。
Global.asax.cx
文件,其中有啓動方法Application_Start
,可能是您正在尋找的。這是應用程序啓動時運行的代碼。
protected void Application_Start()
{
...
RouteConfig.RegisterRoutes(RouteTable.Routes);
...
}
但看您發佈它可能是HomeController
或DirectoryController
文件的URL。不幸的是,我無法看到你的路線。
樣品路線寄存器代碼是如下,其中我們可以看到,
的URL/{控制器}/{行動}/{ID}
默認爲控制器/動作/ ID爲主頁/索引/可選
所以如果你開始網址爲http://localhost:52763/
運行Web,它的確會調用http://localhost:52763/Home/Index
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
global.asax.cs中有一個application_start()
方法。 至於控制器對請求的關注,它從控制器的構造函數開始,然後是請求的動作的方法。
MR P.Campbell是正確的。 欲瞭解更多詳情請查看如下:http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx
我複製它的主要內容:
瞭解MVC應用程序執行
請求基於MVC的ASP.NET Web應用程序首先通過UrlRoutingModule對象,是一個HTTP模塊。該模塊解析請求並執行路由選擇。 UrlRoutingModule對象選擇匹配當前請求的第一個路由對象。(路由對象是實現RouteBase的類,通常是Route類的一個實例。)如果沒有路由匹配,則UrlRoutingModule對象將不執行任何操作,並讓請求回退到常規的ASP.NET或IIS請求處理。 從選定的Route對象中,UrlRoutingModule對象獲取實現IRouteHandler接口並與Route對象關聯的對象。通常,在MVC應用程序中,這將是MvcRouteHandler類的一個實例。 MvcRouteHandler實例創建一個實現IHttpHandler接口的MvcHandler對象。 MvcHandler對象然後選擇將最終處理請求的控制器。有關更多信息,請參閱ASP.NET路由。
這裏這個鏈接給出了MVC中整體執行流程及其生命週期事件的非常詳細的解釋。 A-Detailed-Walkthrough-of-ASP-NET-MVC-Request-Life.
欲瞭解更詳細的信息,請點擊此鏈接。 Asp-Net-mvc-life-cycle
@ akh2013 - 我懷疑,但不確定,你所問的是什麼是啓動時ASP.NET MVC應用程序的第一行執行。如果我是正確的,那麼在global.asax中引用Application_Start()的答案之一應該被標記爲接受。如果不是,並且您想知道當客戶端調用應用程序並且應用程序爲請求提供服務時執行哪個代碼,那麼您標記爲接受的答案是有意義的。 – Matt
語句「在global.asax中引用Application_Start()應該被標記爲接受。」,如果您閱讀微軟鏈接http://msdn.microsoft.com/en-us/library/2027ewzw(v=vs。 100).aspx,以「Global.asax文件,也稱爲ASP.NET應用程序文件,是一個包含...的可選文件」開頭。現在的問題是如何在應用程序的啓動不被接受時接受可選文件。希望你明白了。從出發點來看,起點不可選。 – AKS