【问题标题】:Route table in MVC storage locationMVC 存储位置中的路由表
【发布时间】:2015-09-09 07:13:28
【问题描述】:

我知道在 mvc 中,在应用程序启动时 RegisterRoutes 方法在 glabal.asax 的 Application_Start 事件处理程序中被调用。有一个称为 RouteCollection 的路由集合,其中包含应用程序中所有已注册的路由。 RegisterRoutes 方法在此集合中注册路由。 但我想知道这个路由表在 IIS 中的位置。我怎样才能找到它。例如。我正在运行默认的 mvc 应用程序,在哪里可以找到此路由表。

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

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

【问题讨论】:

  • 你为什么在你的帖子中引用 BundleConfig?
  • 不清楚您的要求。您的问题是关于路线的,但您的代码与捆绑包有关。
  • 更新了正确的代码。

标签: c# asp.net-mvc asp.net-mvc-4 routes


【解决方案1】:

这是“在记忆中”。这就是为什么每次应用启动时都必须注册它的原因。 RouteTable.Routes 是对 RouteCollection 的静态引用。

所以您只需拨打RouteTable.Routes 即可访问它。

【讨论】:

  • 是的,它在内存中,但它实际存储在 IIS 中?
  • 你需要说明你想要做什么。您的要求与您实际想要的不匹配。
  • 我在面试中被问到一个问题路由表存储在哪里。
【解决方案2】:

好吧,在回答这个问题之前,让我告诉你,我认为 Route 和 RouteTables 之间存在混淆。 RouteTable 不存储在任何地方,它是一个存储应用程序 URL 路由的类。但是,路由存储在 RouteTable 中。

所以正如我所说,所有应用程序的Routes都存储在RouteTable中。 RouteTable 是一个全局变量,在我们的 MVC 应用程序启动时创建。这在所有使用该应用程序的用户之间共享。

RouteTable 包含名为 Routes (Routetable.Routes) 的属性。它包含所有路由的集合。我们可以将自己的路线添加到此集合中。

来自此链接的参考:RouteTable storage

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 2010-12-29
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    相关资源
    最近更新 更多