我想生成没有控制器名称的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名称)。
答案 0 :(得分:0)
这会导致您遇到麻烦,因为这些操作会与绑定到其他控制器发生冲突。
要像你想要的那样制作干净的网址,省略动作名称会更常见,例如:此页面stackoverflow/questions/{id}
更新
在Action中提供Controller以允许它知道要选择哪条路线,即
@Url.Action("DownloadForm", "Result", new { id = Model.DownloadId })
如果这不起作用,它会被另一条路线抓住,所以路线的排序并不是你想要的。