Asp.Net MapPageRoute和文件夹路径

时间:2013-12-28 09:32:06

标签: asp.net webforms asp.net-routing

我有,在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);

所以每个文件(没有扩展名)都位于

  • public / folder2 / folder1
  • 公共/ folder1中
  • 公共

映射到〜/ userpage.aspx。

我是否可以只使用一个规则以包含其他路径,例如

  • 公共/ {folder4} / {folder3} / {文件夹2} / {文件夹1} / {页}
  • 公共/ {folder3} / {文件夹2} / {文件夹1} / {页}

将映射到〜/ userpage.aspx?

1 个答案:

答案 0 :(得分:3)

您可以使用catch all参数。通过在参数名称的开头添加*字符来定义catch all参数。它只能在路由定义的末尾使用,它将使用斜杠捕获原始url字符串。

在您的示例中,这意味着您必须手动从{page}对象解析RouteData参数。

routes.MapPageRoute("Route0", "public/{*fullpath}", "~/userpage.aspx", true);