2010-09-02 8 views

risposta

6

sono stato in grado di farlo da qui:

String URL to RouteValueDictionary

Per ottenere l'area da questo esempio ho usato:.

zona stringa = routeData.DataTokens [ "area"] ToString();

-2

Si potrebbe estrarre queste informazioni dalle rotte:

var controller = RouteData.Values["controller"]; 
var action = RouteData.Values["action"]; 
var action = RouteData.Values["area"]; 

Per quanto riguarda la stringa di query è interessato si può tirare dalla richiesta:

var queryString = Request.Url.Query; 

UPDATE:

Se l'url proviene da un DB:

var uri = new Uri(someStringThatRepresentsTheUrlAndComesFromADb); 
var queryString = uri.Query; 
+0

Hmm è davvero interessante, ma la stringa dell'URL non proviene dal contesto corrente, proviene da un DB. –

+0

@Ozzie, vedere il mio aggiornamento. –

+0

Grazie, sì, posso ottenere la querystring. Il problema è ottenere l'area, il controller, l'azione davvero. A volte un'azione ha un "/" finale e talvolta non lo è, quindi il conteggio da destra può essere fuorviante. D'altra parte, un'applicazione può essere all'interno di diverse strutture di directory in IIS, quindi il conteggio delle posizioni da sinistra non è semplice né ... –