在global.asax中更改路由值

时间:2012-03-26 14:14:54

标签: c# asp.net-mvc-3

我想更改默认路由值。

现在,我有:

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

我想:{controller}/{id}/{action}

这并不像我已经尝试过的那样简单。我该如何处理?

1 个答案:

答案 0 :(得分:1)

您需要2条路线才能完成此任务。

粗略的想法,未经测试

 routes.MapRoute(
        "Default", // Route name
        "{controller}/{id}/{action}", // URL with parameters
        new { controller = "Home", action = "Index", id=@"\d+" } // defaults
    );

 routes.MapRoute(
        "Shorter", // Route name
        "{controller}/{action}", // URL with parameters
        new { controller = "Home", action = "Index" }         // defaults
    );

并按照这个顺序保留它们。

不完全确定动作的签名,可能是ActionResult Index(int? id)