1

我想生成没有控制器名称的 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 没有控制器名称)。

4

1 回答 1

0

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

为了使干净的 url 像你想要的那样,省略动作名称会更常见,例如这个页面 stackoverflow/questions/{id}

更新

在 Action 中提供 Controller 让它知道选择哪条路由,即

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

如果这不起作用,它将被另一条路线抢占,因此路线的顺序不是您想要的。

于 2012-11-05T13:39:19.120 回答