更改目录索引

时间:2014-09-08 02:02:03

标签: asp.net-mvc

我正在开发一个ASP.NET MVC Web应用程序。默认情况下,浏览到目录的根似乎调用控制器的Index()方法。有没有办法在这里更改默认调用哪个方法?我知道我可以命名我想称之为“索引”的方法,它可能会有效,但我想知道是否有办法将目录root指向我选择的方法。

例如:mysite.com/MyDirectory/会调用Index(),这有效地浏览到mysite.com/MyDirectory/Index。我想更改它,以便mysite.com/MyDirectory/调用Details,(或“浏览”到mysite.com/MyDirectory/Details)。

2 个答案:

答案 0 :(得分:0)

只需更改默认路线中的操作即可。像这样:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Details", id = UrlParameter.Optional } // Parameter defaults
);

答案 1 :(得分:0)

您可以指定路线中的行为。如果您使用的是最新版本的MVC,那将在您的 \ App_Start \ RouteConfig.cs

你会有类似的东西:

        routes.MapRoute(
            name: "MyDirectory",
            url: "MyDirectory",
            defaults: new { controller = "MyDirectory", action = "Details" });

您可以将它放在默认路由之前,因为您的路由表有点像在找到的第一条路由上匹配的switch语句。

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "MyDirectory",
            url: "MyDirectory",
            defaults: new { controller = "MyDirectory", action = "Details" });

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