Get root path in ASP.NET without using Tilde ~

As you probably know you can use the tilde sign (~) in ASP.NET to get the relative path of the root of your Web Site or Web Application. But unless using the Link Server Control or similar you may need some code to convert it to a correct url or get the absolute path.

Using a Server Control – example using the HyperLink Web Server Control
[code lang=”vb”]
MyHyperLink.NavigateUrl = "~/Products/XYZ"
[/code]

Using HttpRuntime.AppDomainAppVirtualPath
[code lang=”vb”]
strAbsoluteUrl = HttpRuntime.AppDomainAppVirtualPath & "/Products/XYZ"
[/code]

Using VirtualPathUtility.ToAbsolute
[code lang=”vb”]
strAbsoluteUrl = VirtualPathUtility.ToAbsolute("~/Products/XYZ")
[/code]

Thanks to Yousef

ASP.NET 4.0: Extra space above Menu in Chrome and Safari using Menu Control

In Visual Studio 2010 when creating a new ASP.NET Web Site or ASP.NET Web Application you get a shell for ASP.NET 4.0 web site with a menu using the ASP.NET 4.0 Menu Control. However in Google Chrome and Safari browsers the menu will show with some extra space above it. It took plenty of googling to find the answer since google is filled with solutions for Chrome problems in ASP.NET 2.0.
Finally – the solution for .NET Framework 4.0:

Add these lines to the Site.css file (in the Styles folder of your VS 2010 project)
[code lang=”css”]
/* Fix for extra space above menu in Chrome and Safari */
img[alt=’Skip Navigation Links’] {
display: none;
}
[/code]

An alternative is to add SkipLinkText=”” to each menu item (have not tested this)

Thanks to MattyF for the solution