5

我有一个启用路由的 ASP.NET 3.5 webforms 项目。我在项目中还有许多控件根据它们当前显示的页面执行不同的操作。似乎控制这种不同行为的最直接方法是发现用于加载页面的路由,然后照着做事。

但是,我似乎无法找到一种方法来发现查看实际请求 URL 并在其上运行正则表达式的路由栏,这不是很好。有谁知道以其他方式查找它的方法?

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

4

3 回答 3

3

看起来 Phil Haack 在他的网站上的博客文章中回答了这个问题:http: //haacked.com/archive/2010/11/28/getting-the-route-name-for-a-route.aspx

于 2010-12-30T21:55:03.893 回答
0

在 .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);    
于 2012-07-11T19:04:44.987 回答
0

我在这篇文章中发布了一些简单的扩展方法,您可以使用它们来获取/设置路由名称。(对我来说)似乎比 Haack 的解决方案更简单。

于 2014-01-17T03:53:22.740 回答