使用正则表达式处理带有n个斜杠的ASP.net路由

时间:2009-10-12 19:31:25

标签: regex asp.net-mvc routing

我需要使用这样的网址:

http://mydomain.com/Box/Categ1/Categ2/Categ3/.../CategN/id1,id2,id3,...,idN

然后我尝试用这种方式创建一条新路线......

routes.MapRoute(
    "Box",
    "Box/{data}",
    new { controller = "Box", action = "Index"},
    new { data = @"([a-zA-Z0-9-,]+/?)+" }
);

但它不起作用。如果我使用任何字符而不是“/”(斜杠),它工作正常。是否可以使用斜杠?我真的希望看到这样的网址。

1 个答案:

答案 0 :(得分:11)

如果要将数据变量设置为Box之后的所有内容,只需使用catch-all参数。

routes.MapRoute(
    "Box",
    "Box/{*data}",
    new { controller = "Box", action = "Index"}
);