uso de tilde (~) en asp.net path

Estoy trabajando en una aplicación asp.net, el siguiente enlace funciona en IE pero no en FF.

 

No es la tilde algo que solo se puede usar en los controles del servidor asp.net. ¿Dónde será reemplazado por un camino real?

¿Es posible usar la tilde en una etiqueta de anclaje? ¿Si es así, qué significa?

Cuando estoy en la raíz, el enlace funciona

 www.myserver.com/default.aspx, click the link, ok! www.myserver.com/otherpart/default.aspx, click the link, not ok! 

El enlace generado por ASP.NET es:

 www.myserver.com/otherpart/~BusinessOrderInfo/page.aspx 

¿Esto es por diseño?

Estás en lo cierto, solo funciona en los controles del servidor. Tienes estas opciones básicas:

Cambie a HyperLink para ejecutarlo como control web :

  

O ejecute el ancla en el lado del servidor como control HTML :

  

O bien, use Page.ResolveUrl :

 ">... 

Los controles HTML se pueden convertir en controles de servidor al agregar el atributo runat = “server”.

  

La tilde se refiere al directorio raíz de la aplicación y se traducirá correctamente en propiedades de control como NavigateUrl.

Tengo entendido que si lo usa en tags HTML simples, ASP.Net no lo traducirá.

Si elimina tilde y usa barra inclinada solamente obtendrá el mismo resultado, es decir, apuntando a la carpeta raíz en el dominio actual:

  

Esta función también se puede usar para resolver rutas para elementos que no sean servidores

 VirtualPathUtility.ToAbsolute($"~/App_Themes/Default/Icons/myimage.gif")