Code:
public string BaseUrl { get { // variables string Authority = Request.Url.GetLeftPart(UriPartial.Authority).TrimStart('/').TrimEnd('/'); string ApplicationPath = Request.ApplicationPath.TrimStart('/').TrimEnd('/'); // add trailing slashes if necessary if (Authority.Length > 0) { Authority += "/"; } if (ApplicationPath.Length > 0) { ApplicationPath += "/"; } // return return string.Format("{0}{1}", Authority, ApplicationPath); } }
I like this technique because whether you are using a virtual directory or not, and whether you are using http or https, you can get the base url easily if you need to build a fully-qualified-url withing your application (e.g. sharing a link, sending an email with a link back, etc).
Example output for a top-level site:
http://dev.sandbox.com/
Example output for a virtual directory:
http://dev.sandbox.com/qa/
Matt Pavey is a Microsoft Certified software developer who specializes in ASP.Net, VB.Net, C#, AJAX, LINQ, XML, XSL, Web Services, SQL, jQuery, and more. Follow on Twitter @matthewpavey
0 comments: