在ASP.NET 2中,如何创建允许通过字符串id(例如ProductCode)查找对象(例如Product)的路由?通过它的整数id(例如ProductId)查找同一对象的路由是自动的,所以我实际上并不知道它是如何工作的。
id的自动路由是:
/Product/1
如何创建使用字符串ID的第二条路线?
/Product/red-widget
我该怎么做以便两条路线都可用?
答案 0 :(得分:20)
您应该看一下使用路由约束来执行此操作。见http://www.asp.net/mvc/tutorials/creating-a-route-constraint-cs
routes.MapRoute(
"Product",
"Product/{productId}",
new {controller="Product", action="DetailsByName"},
new {productId = @"\w+" }
);
在上面,约束正则表达式“\ w +”应限制为仅匹配“单词”字符的路由(有关此处使用的模式的更多详细信息,请查看正则表达式文档)。