Почему ‹a href=~/#link› при запуске становится ‹a href=#link#link› на главной странице?

Я никогда не видел эту проблему, и я понятия не имею, что вызывает ее.

У меня есть что-то вроде этого кода на моей мастер-странице

<div class="myClass1">
    <a href="~/#link" runat="server" title=" <%$ Resources: myRess1 %>">
        <asp:Literal runat="server" Text="<%$ Resources: myRess1 %>" /><br />
        <img class="myClass2" src="/MasterPage/images/myGif.gif" width="19"  height="12" alt="" />
    </a>
</div>

когда я просматриваю страницу, использующую эту мастер-страницу, код становится

<div class="myClass1">
    <a href="#link#link" title="myTitle">
        myTitle<br />
        <img class="myClass2" src="/MasterPage/images/.gif" width="19" height="12" alt="" /><br />
    </a>
</div>

почему ссылка дублируется?

если я поставлю что-то вроде default.aspx вместо #link, все будет работать отлично.

Причина, по которой я использую «~/», заключается в том, что главная страница находится где-то еще, и если я не поставлю ~/, это сделает ссылку как /masterpage/#link, которая недействительна.


person Fredou    schedule 21.09.2009    source источник


Ответы (3)


~/ не должно быть необходимым. Просто используйте #link

person Chris Ballance    schedule 21.09.2009
comment
главная страница находится где-то еще, если я не поставлю ~/, это сделает ссылку как /masterpage/#link, которая недействительна - person Fredou; 21.09.2009

«~» можно использовать только с серверными элементами управления, а не с элементами управления html. Вы должны просто использовать href="#link".

person Nirlep    schedule 21.09.2009
comment
Я почти уверен, что '~' может использоваться, если вы поместите атрибут runat="server" в атрибуты элемента управления HTML. - person Dan Herbert; 21.09.2009
comment
главная страница находится где-то еще, если я не поставлю ~/, это сделает ссылку как /masterpage/#link, которая недействительна - person Fredou; 21.09.2009
comment
Используйте что-то вроде /Test/TestAnchoreLinks.aspx#test - person Nirlep; 21.09.2009

на данный момент я изменил свой

<a href="~/#link" runat="server" title=" <%$ Resources: myRess1 %>">

to

<a href="#link" title="<%=GetLocalResourceObject("myRess1 ") %>">

и это работает нормально, но если бы кто-нибудь мог сказать мне, почему с runat="server" испортить ссылку #, это было бы полезно знать

person Fredou    schedule 21.09.2009