использование Тильды ( ~ ) в asp.net путь
Я работаю над asp.net приложение, следующая ссылка работает в IE, но не в FF.
<a href="~/BusinessOrderInfo/page.aspx" >
разве Тильда не то, что можно использовать только в asp.net серверные элементы управления. Где он будет заменен на реальный путь?
можно ли использовать Тильду в теге якоря? Если да, то что это значит?
когда я в корне, ссылка работает
www.myserver.com/default.aspx, click the link, ok!
www.myserver.com/otherpart/default.aspx, click the link, not ok!
ссылка, сгенерированная ASP.NET это:
www.myserver.com/otherpart/~BusinessOrderInfo/page.aspx
это дизайн?
5 ответов:
вы правы, он работает только в серверных элементов управления. У вас есть следующие основные варианты:
заменить на
HyperLink
запустить как Web Control:<asp:HyperLink NavigateUrl="~/BusinessOrderInfo/page.aspx" Text="Whatever" runat="server" />
или запустите якорь на стороне сервера как HTML Control:
<a href="~/BusinessOrderInfo/page.aspx" runat="server" >
или
Page.ResolveUrl
:<a href="<%= Page.ResolveUrl("~/BusinessOrderInfo/page.aspx") %>">...</a>
HTML-элементы управления можно превратить в серверные элементы управления, добавив атрибут runat= "server".
<a href="~/BusinessOrderInfo/page.aspx" runat="server">
Тильда ссылается на корневой каталог приложения и будет правильно переведена в свойствах элемента управления, таких как NavigateUrl.
Я понимаю, что если вы используете его в простых HTML-тегах, он не будет переведен ASP.Net.