我有以下路由,并在浏览器中输入它们可以正常运行并正确路由,但是如果我使用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是正确的,但这些东西不起作用。请注意,StuffRoute根据请求中的信息设置操作名称。
发布于 2012-02-29 20:56:01
似乎您实际上是在试图将控制器“作业”映射为“东西”。目前,您的"DefaultStuff“路由不解析操作,因此它将其作为查询字符串值放入。
_routes.MapRoute(
"DefaultStuff",
"stuff/{action}/{id}",
new { controller="Job", id = UrlParameter.Optional },
new[] { typeof(BaseApiController).Namespace });https://stackoverflow.com/questions/9506424
复制相似问题