Si può determinare il nome della rotta seguita dalla pagina webforms?
-
19-09-2019 - |
Domanda
Ho un progetto ASP.NET 3.5 webforms Ho attivato il routing sopra. Ho anche in progetto una serie di controlli che fanno cose diverse in base a quale pagina vengono sono attualmente in fase mostrati in. Sembrerebbe che il modo più semplice per controllare questo comportamento diverso è quello di scoprire quale percorso è stato utilizzato per caricare la pagina e poi fare le cose in base a questo.
Tuttavia, non riesco a trovare un modo per scoprire la barra di percorso guardando l'URL della richiesta reale e l'esecuzione di un regex su di esso, che non è grande. Qualcuno sa un modo per guardare in su qualche altro modo?
Aggiornamento: c'è ancora non sembra essere un modo per fare questo in ASP.NET 4.0. Speriamo che qualcun altro ha capito questo?
Soluzione
Sembra che Phil Haack ha risposto a questa domanda in un post sul blog sul suo sito: http://haacked.com/archive/2010/11/28/getting-the-route-name-for-a-route.aspx
Altri suggerimenti
In un .NET 4 webforms app, ho usato questo per determinare la definizione della rotta.
string myOperation =
((System.Web.Routing.Route)(Page.RouteData.Route)).Url;
//string has value "Stop" or "Start"
Diciamo che i percorsi sono in questo modo:
routes.MapPageRoute("StopEmailAlerts",
"Stop/{SomeToken}",
"~/Emailing.aspx", false);
routes.MapPageRoute("SendEmailAlerts",
"Start/{SomeToken}",
"~/Emailing.aspx", false);
ho postato un paio di semplici metodi di estensione è possibile utilizzare per ottenere / impostare il nome del percorso su questo posta . Sembra più semplice (per me) che la soluzione di Haack.