19

我正在学习围绕 MVC 4 应用程序的方法,但对 mvc 平台还是陌生的。如果我正在学习一个新的 java 应用程序,我会从 main 方法开始阅读代码并从那里开始。asp.net mvc 应用程序的模拟是什么?

我从以下 URL 启动应用程序:http://server/directory/home?iv-user=tuser

4

6 回答 6

38

Global.asax.cs有 start 方法的文件Application_Start可能就是您要查找的文件。那是应用程序启动时运行的代码。

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

但是查看您发布的网址可能是HomeControllerorDirectoryController文件。不幸的是,我无法从您的路线中看出这一点。

示例路由注册代码如下所示,我们可以在其中看到

  1. URL /{controller}/{action}/{id}

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

因此,如果您使用起始 url as 运行您的网络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 }
    );
}
于 2013-06-04T16:20:11.577 回答
3

它是 HTTP。正如您在上面指定的那样,您向 Web 服务器请求资源,控制器会响应。

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

ASP.NET MVC 中的 MSDN 控制器和操作方法

于 2013-06-04T16:20:28.693 回答
2

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

于 2013-06-04T16:20:18.287 回答
1

在您给出的情况下,如果您想找到执行的非框架代码的第一位,您将HomeController.csControllers目录中查找并查找将接受参数的Indexor方法。Defaultiv-user

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

于 2013-06-04T16:20:00.957 回答
0

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 请求处理。UrlRoutingModule 对象从选定的 Route 对象中获得一个实现 IRouteHandler 接口并与 Route 对象关联的对象。通常,在 MVC 应用程序中,这将是 MvcRouteHandler 类的一个实例。MvcRouteHandler 实例创建一个实现 IHttpHandler 接口的 MvcHandler 对象。然后 MvcHandler 对象选择最终处理请求的控制器。有关详细信息,请参阅 ASP.NET 路由。

于 2014-07-30T07:10:28.370 回答
-3

起点是 program.cs 文件中的 public static void Main(string[] args) {...} 。

于 2018-09-27T05:08:12.297 回答