Можете ли вы определить название маршрута, по которому идет ваша страница веб-форм? - PullRequest
5 голосов
/ 06 января 2010

У меня есть проект веб-форм ASP.NET 3.5, по которому я включил маршрутизацию. У меня также есть в проекте несколько элементов управления, делающих разные вещи в зависимости от того, на какой странице они в данный момент отображаются. Казалось бы, самый простой способ контролировать это другое поведение - это определить, какой маршрут использовался для загрузки страницы, а затем делай так в соответствии с этим.

Однако я не могу найти способ обнаружить панель маршрутов, просматривая фактический URL-адрес запроса и выполняя регулярное выражение по нему, что не очень хорошо. Кто-нибудь знает способ посмотреть на это как-то иначе?

Обновление: в ASP.NET 4.0 все еще не существует способа сделать это. Надеюсь, кто-то еще понял это?

Ответы [ 3 ]

3 голосов
/ 31 декабря 2010

Похоже, Фил Хаак ответил на этот вопрос в сообщении в блоге на своем сайте: http://haacked.com/archive/2010/11/28/getting-the-route-name-for-a-route.aspx

0 голосов
/ 17 января 2014

Я опубликовал несколько простых методов расширения, которые вы можете использовать для получения / установки имени маршрута в этой записи . Кажется, проще (для меня), чем решение Хаака.

0 голосов
/ 11 июля 2012

В приложении .NET 4 webforms я использовал это, чтобы определить определение маршрута.

 string myOperation =
     ((System.Web.Routing.Route)(Page.RouteData.Route)).Url;

 //string has value "Stop" or "Start"

Допустим, ваши маршруты такие:

        routes.MapPageRoute("StopEmailAlerts",
            "Stop/{SomeToken}",
            "~/Emailing.aspx", false);

        routes.MapPageRoute("SendEmailAlerts",
            "Start/{SomeToken}",
            "~/Emailing.aspx", false);    
...