2011-06-15 64 views
6

我这样做:操作参数

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

这样的URLcomes了:/ myController的/细节ID = 1

我如何得到它的格式网址是这样的:/ myController的/详细信息/ 1

的路线是这样的:

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

回答

8

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

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

+0

谢谢 - 订购是一个疏忽,哎呀!它现在适用于正确的顺序,但案件显然并不重要。我仍然会在路线中使用与其他地方一样的案例。谢谢。 – 2011-06-15 11:33:01

+0

谢谢汤姆,我有同样的问题,我找不到原因。 – 2012-08-22 10:32:22