Asp.net 您能否从webforms页面确定所遵循的路由的名称?

Asp.net 您能否从webforms页面确定所遵循的路由的名称?,asp.net,routing,webforms,asp.net-3.5,asp.net-4.0,Asp.net,Routing,Webforms,Asp.net 3.5,Asp.net 4.0,我有一个ASP.NET 3.5 webforms项目,我已经启用了路由。 在这个项目中,我还有一些控件,它们根据当前显示的页面做不同的事情。控制这种不同行为的最直接的方法似乎是发现加载页面所使用的路由,然后根据该路由进行操作 然而,我似乎找不到一种方法来发现路由栏,查看实际的请求URL并在其上运行正则表达式,这并不好。有人知道用别的方法查吗 更新:在ASP.NET 4.0中似乎仍然没有这样做的方法。希望其他人已经解决了这个问题。看起来Phil Haack在其网站上的一篇博文中回答了这个问题:在.

我有一个ASP.NET 3.5 webforms项目,我已经启用了路由。 在这个项目中,我还有一些控件,它们根据当前显示的页面做不同的事情。控制这种不同行为的最直接的方法似乎是发现加载页面所使用的路由,然后根据该路由进行操作

然而,我似乎找不到一种方法来发现路由栏,查看实际的请求URL并在其上运行正则表达式,这并不好。有人知道用别的方法查吗


更新:在ASP.NET 4.0中似乎仍然没有这样做的方法。希望其他人已经解决了这个问题。

看起来Phil Haack在其网站上的一篇博文中回答了这个问题:

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

我发布了几个简单的扩展方法,您可以使用这些方法来获取/设置此站点上的路由名称。(对我来说)似乎比哈克的解决方案更简单