asp.net mvc 4应用程序的切入点是什么?

时间:2013-06-04 16:16:21

标签: asp.net-mvc

我正在学习MVC 4应用程序,但我是mvc平台的新手。如果我正在学习一个新的java应用程序,我将开始从main方法中读取代码并从那里开始。 asp.net mvc应用程序的模拟是什么?

我从以下网址启动了该应用:http://server/directory/home?iv-user=tuser

6 个答案:

答案 0 :(得分:29)

Global.asax.cs文件,其中包含启动方法Application_Start可能就是您要查找的内容。这是应用程序启动时运行的代码。

protected void Application_Start()
{
    ...
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    ...
}

但是查看您发布的网址可能是HomeControllerDirectoryController文件。不幸的是,我无法通过查看你的路线来说明这一点。

示例路由注册码如下所示我们可以看到

  1. 网址/ {controller} / {action} / {id}

  2. controller / action / id的默认值为Home / Index / optional

  3. 因此,如果您使用起始网址http://localhost:52763/运行您的网址,则确实会调用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 }
        );
    }
    

答案 1 :(得分:3)

这是HTTP。如上所述,您向Web服务器请求资源,并且控制器响应。

因此,在ASP.NET MVC中,您有多个入口点:每个操作方法。

MSDN Controllers and Action Methods in ASP.NET MVC

答案 2 :(得分:1)

在您提供的情况下,如果要查找执行的第一个非框架代码,您可以在HomeController.cs目录中查找Controllers并查找{{ 1}}或Index方法接受参数Default

要查看整个页面生命周期,请查看此处:http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/entrypage/be-ahead-of-the-game-poster2。这会将您从传入的HTTP请求转到最终的渲染视图。

答案 3 :(得分:1)

global.asax.cs中有一个application_start()方法。 至于控制器对请求的关注,它从控制器的构造函数开始,然后是请求的操作的方法。

答案 4 :(得分:0)

MR P.Campbell是对的。 有关详细信息,请查看:http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx

我复制了它的主要内容:

了解MVC应用程序执行

对基于ASP.NET MVC的Web应用程序的请求首先通过UrlRoutingModule对象,该对象是一个HTTP模块。该模块解析请求并执行路由选择。 UrlRoutingModule对象选择与当前请求匹配的第一个路由对象。 (路由对象是实现RouteBase的类,通常是Route类的实例。)如果没有路由匹配,则UrlRoutingModule对象不执行任何操作,并使请求回退到常规ASP.NET或IIS请求处理。 从选定的Route对象中,UrlRoutingModule对象获取一个实现IRouteHandler接口并与Route对象关联的对象。通常,在MVC应用程序中,这将是MvcRouteHandler类的实例。 MvcRouteHandler实例创建一个实现IHttpHandler接口的MvcHandler对象。然后,MvcHandler对象选择最终处理请求的控制器。有关更多信息,请参阅ASP.NET路由。

答案 5 :(得分:-2)

起点是program.cs文件中的公共静态void Main(string [] args){...}。