C#MVC:在我更改默认路由后,MapRoute正在为URL添加/索引

时间:2015-02-06 14:03:06

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

你知道MVC的默认路由是

context.MapRoute(
            "Public_default",
            "{controller}/{action}/{id}",
            new {
                 controller = "Home",
                 action = "Index",
                 id = UrlParameter.Optional
            }
        )

并致电 Url.Action(“”)返回“/ MyController”

我将默认路线更改为:

context.MapRoute(
            "Public_default",
            "{controller}/{action}/{id}/{slug}",
            new {
                controller = "Home",
                action = "Index",
                id = UrlParameter.Optional,
                slug = UrlParameter.Optional
            }
        )

现在调用 Url.Action(“”)返回“/ MyController / Index”

问题是“/ index”。它似乎忽略了路线默认值中的 action =“Index”

我认为这是因为将{slug}添加到路线。

注意:当我打电话给 / MyController 时,它的工作方式与以前一样。但是Url.Action(“”)的行为发生了变化。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

令人惊讶的是,我在路由配置中放置了两个路由,它解决了问题... 但我认为这是Url.Action()

的不当行为