您可以从网页表单页面确定路线的名称吗?

时间:2010-01-06 16:39:38

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

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

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

更新:在ASP.NET 4.0中似乎仍然没有办法做到这一点。希望其他人已经想出来了吗?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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);    

答案 2 :(得分:0)

我发布了一些简单的扩展方法,您可以使用它们来获取/设置此post的路由名称。似乎比哈克的解决方案更简单(对我而言)。