我有一個ASP.NET 3.5 webforms項目,我已啓用路由。 我也在項目中有許多控件根據它們當前正在顯示的頁面來做不同的事情。似乎控制這種不同行爲的最直接的方法是發現哪個路徑用於加載頁面,以及然後按照那樣做事情。你可以確定從你的webforms頁面跟蹤的路由名稱嗎?
但是,我似乎無法找到一種方法來發現查看實際請求URL並在其上運行的正則表達式不是很好的路由欄。有沒有人知道一種方式來查找它的其他方式?
更新:在ASP.NET 4.0中似乎還沒有做到這一點。希望別人已經明白了這一點?
我有一個ASP.NET 3.5 webforms項目,我已啓用路由。 我也在項目中有許多控件根據它們當前正在顯示的頁面來做不同的事情。似乎控制這種不同行爲的最直接的方法是發現哪個路徑用於加載頁面,以及然後按照那樣做事情。你可以確定從你的webforms頁面跟蹤的路由名稱嗎?
但是,我似乎無法找到一種方法來發現查看實際請求URL並在其上運行的正則表達式不是很好的路由欄。有沒有人知道一種方式來查找它的其他方式?
更新:在ASP.NET 4.0中似乎還沒有做到這一點。希望別人已經明白了這一點?
它看起來像菲爾哈克在他的網站上一篇博客文章中已經回答了這個問題:http://haacked.com/archive/2010/11/28/getting-the-route-name-for-a-route.aspx
在.NET 4個web表單的應用程序,我用它來確定路由定義。
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);
我貼幾個你可以用它來獲取/設置這個post航線名稱簡單的擴展方法。似乎比哈克的解決方案更簡單(對我來說)。