以querystring而不是URL显示的操作参数

时间:2011-06-15 02:25:15

标签: model-view-controller asp.net-mvc-3 .net-4.0 routes

我这样做:

@Url.Action("Details", "MyController", new { id = this.Model.ID })

网址如下:/ MyController / Details?id = 1

如何让它格式化这样的URL:/ MyController / Details / 1

路线如下:

routes.MapRoute("Default", "{Controller}/{Action}", new { Controller = "Home", Action = "Index" });
routes.MapRoute("Default-ID", "{Controller}/{Action}/{ID}");

1 个答案:

答案 0 :(得分:8)

路由顺序很重要 - 两个网址都有效,在这种情况下,系统会在查找匹配该操作的网址时首先获取查询字符串。

{ID}也可能存在区分大小写问题 - 不确定该问题,但通常最好始终使用大小写。