UrlHelper.Action生成没有控制器的Url

时间:2012-11-05 13:24:49

标签: asp.net-mvc-3

我想生成没有控制器名称的Url。如果我使用下面的代码...

 @Url.Action("d", null, new { id = Model.DownloadId })

...我得到这样的网址

http://localhost:814/DefaultController/d/11234

我想得到像这样的网址

http://localhost:814/d/11234

我的路线代码..

routes.MapRoute("Download result form", "d/{id}", new { controller = "Result", action = "DownloadForm" });

...完美地处理上面的url(仅使用Action和Id而不使用Controller名称)。

1 个答案:

答案 0 :(得分:0)

这会导致您遇到麻烦,因为这些操作会与绑定到其他控制器发生冲突。

要像你想要的那样制作干净的网址,省略动作名称会更常见,例如:此页面stackoverflow/questions/{id}

更新

在Action中提供Controller以允许它知道要选择哪条路线,即

 @Url.Action("DownloadForm", "Result", new { id = Model.DownloadId })

如果这不起作用,它会被另一条路线抓住,所以路线的排序并不是你想要的。