Asp.Net MapPageRoute и путь к папке

У меня в Application_Start global.asax

    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);

Таким образом, каждый файл (без расширения), расположенный в

  • общая/папка2/папка1
  • общедоступная/папка1
  • публичный

сопоставляется с ~/userpage.aspx.

Могу ли я использовать только одно правило, чтобы включить другие пути, такие как

  • public/{folder4}/{folder3}/{folder2}/{folder1}/{page}
  • public/{folder3}/{folder2}/{folder1}/{page}

который будет сопоставлен с ~/userpage.aspx?


person Ugo.m    schedule 28.12.2013    source источник


Ответы (1)


Вы можете использовать параметр catch all. Универсальный параметр определяется добавлением символа * в начале имени параметра. Его можно использовать только в конце определения маршрута, и он поймает необработанную строку URL-адреса с косой чертой.

В вашем примере это означает, что вам придется вручную анализировать параметр {page} из объекта RouteData.

routes.MapPageRoute("Route0", "public/{*fullpath}", "~/userpage.aspx", true);
person Alexander Manekovskiy    schedule 28.12.2013