Mvc Action Link没有使用正确的路线

时间:2012-02-29 20:51:15

标签: asp.net-mvc asp.net-mvc-routing

我有以下路由,在浏览器中键入它们并正常路由,但如果我使用Html.ActionLink,它会尝试使用DefaultStuff路由。

路线

_routes.MapStuffRoute(
    "DefaultStuff",
    "stuff/{controller}/{id}",
    new { id = UrlParameter.Optional },
    new[] { typeof(BaseApiController).Namespace });

_routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new[] { typeof(BaseController).Namespace });

网页

@Html.ActionLink("Job Queues", "Index", "Job") // generates http://localhost/stuff/job?action=Index

我错过了允许ActionLink生成http://localhost/stuff/index的内容。反转路径ActionLink是正确的,但Stuff不起作用。只需注意,StuffRoute会根据请求中的信息设置操作名称。

1 个答案:

答案 0 :(得分:1)

好像你真的想把控制器“Job”映射到东西。目前,您的“DefaultStuff”路由无法解析操作,因此它将其作为查询字符串值放入。

_routes.MapRoute(
"DefaultStuff",
"stuff/{action}/{id}",
new { controller="Job", id = UrlParameter.Optional },
new[] { typeof(BaseApiController).Namespace });