我正在研究MVC 5路由。我想只为不同的URL使用1个映射;
例如,如果用户写为Prodcut,Producto和Urun,如下所示:
www.blabla.com/Product/1
www.blabla.com/Urun/1
www.blabla.com/Producto/1
...然后会发送此请求同样的产品动作。
这可以像下面的代码那样定义吗?
routes.MapRoute(
"Page",
"Product/{id} | Producto/{id} | Urun/{id}", //This row not working
defaults: new { controller = "Product", action = "ShowProduct" , id = UrlParameter.Optional},
constraints: new { id = @"^[a-zA-Z0-9ğüşöçİĞÜŞÖÇ_-.]+$" }
);
答案 0 :(得分:0)
更好的是创建多个路线,但您可以使用约束
routes.MapRoute(
"Page",
"{name}/{id},
defaults: new {
controller = "Product",
action = "ShowProduct",
id = UrlParameter.Optional
},
constraints: new {
id = @"^[a-zA-Z0-9ğüşöçİĞÜŞÖÇ_-.]+$",
name = "Product|Producto|Urun"
}
);