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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top