2010-01-30 17 views
12

Sto utilizzando Request.ApplicationPath per imparare il nome della directory virtuale in cui sono in esecuzione. C'è un modo più affidabile?Ottieni il nome della directory virtuale?

+3

Ciò che rende 'Request.ApplicationPath' inaffidabile? –

+1

Non avrei mai dovuto usare la parola "affidabile". "Cleaner" sarebbe stato un modo migliore. Mi piacerebbe qualcosa che mi ha dato il nome (o pseudonimo) della Directory virtuale senza riguardo a me con la barra all'inizio. Petty, lo so, ma non mi dispiace chiedere questo genere di cose. Mi dispiace per la mia povera espressione. – lance

+1

Creare una funzione di utilità per fornire ciò che si desidera. Ovviamente, utilizzando il Request.ApplicationPath per iniziare. –

risposta

16

Request.ApplicationPath è un modo perfettamente affidabile per ottenere la directory virtuale e funziona sempre quando si dispone di HttpContext e può richiedere i dati della richiesta.

Per l'ulteriore elaborazione e l'estrazione di parti del percorso, dare un'occhiata alla classe VirtualPathUtility.

2

È necessario utilizzare Request.ApplicationPath. Questo è ciò per cui è stato progettato.

Modifica per andare con il tuo commento.

Dal momento che si desidera un modo "pulito" per gestire la barra, è consigliabile creare una funzione di utilità che restituisca il percorso dell'applicazione con la logica al suo interno per gestire la barra come si ritiene opportuno.

0

Usare questa funzione in C#:

public static String GetHost() 
{ 
    var request = HttpContext.Current.Request; 
    return request.Url.Scheme + "://" + request.ServerVariables["HTTP_HOST"] + request.ApplicationPath; 
} 
Problemi correlati