我有,在global.asax的Application_Start
routes.MapPageRoute("Route2", "public/{folder2}/{folder1}/{page}", "~/userpage.aspx", true);
routes.MapPageRoute("Route1", "public/{folder1}/{page}", "~/userpage.aspx", true);
routes.MapPageRoute("Route0", "public/{page}", "~/userpage.aspx", true);
所以每个文件(没有扩展名)都位于
映射到〜/ userpage.aspx。
我是否可以只使用一个规则以包含其他路径,例如
将映射到〜/ userpage.aspx?
答案 0 :(得分:3)
您可以使用catch all参数。通过在参数名称的开头添加*
字符来定义catch all参数。它只能在路由定义的末尾使用,它将使用斜杠捕获原始url字符串。
在您的示例中,这意味着您必须手动从{page}
对象解析RouteData
参数。
routes.MapPageRoute("Route0", "public/{*fullpath}", "~/userpage.aspx", true);