lance
lance

Reputation: 16342

Get name of virtual directory?

I'm using Request.ApplicationPath to learn the name of the Virtual Directory in which I'm running. Is there a more reliable way?

Upvotes: 17

Views: 21069

Answers (3)

Bruno Garcia
Bruno Garcia

Reputation: 11

Use this function in C#:

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

Upvotes: 1

Clarence Klopfstein
Clarence Klopfstein

Reputation: 4852

You need to use Request.ApplicationPath. That is what it is designed for.

Editing to go with your comment.

Since you want a 'cleaner' way to handle the slash, I recommend creating a utility function that returns the application path with the logic in it to deal with the slash as you see fit.

Upvotes: 2

Tomas Vana
Tomas Vana

Reputation: 18775

Request.ApplicationPath is perfectly reliable way of getting the virtual directory and works always when you have the HttpContext and can ask for the Request data.

For further processing and extracting parts of the path, take a look at the VirtualPathUtility class.

Upvotes: 22

Related Questions