Подтвердить что ты не робот

NavigateUrl = "#" становится href= "SubFolder/#"?

Это не совсем последняя теорема Ферма, но она продолжает возвращаться, чтобы раздражать меня, как неоплаченный телефонный счет из колледжа. Иногда я хочу создать HyperLink, который не вызывает обратную передачу, поэтому я хочу, чтобы целевой URL был #. Когда разметка происходит из UserControl во вложенной папке,

/
|- Home.aspx (uses UC.ascx)
|- Sub
   |- UC.ascx

URL-адрес переписывается с относительным путем, например.

<asp:HyperLink runat="server" NavigateUrl="#" >Click Me!</asp:HyperLink>

становится

<a href="SubFolder/#">Click Me!</a>

Что, к сожалению, неправильно. Очевидно, я могу обойти это, не используя серверный контроль, но он кажется глупым. Можно ли этого избежать?

Здесь я добавлю событие click с jQuery или в код, и я никогда не хочу, чтобы он вызывал обратную передачу, но я хочу, чтобы это была гиперссылка по причинам CSS.

4b9b3361

Ответ 1

простой способ:

 <asp:HyperLink ID="HyperLink1" 
                navigateUrl="#" 
                onclick="javascript:return false;"                   
                runat="server">HyperLink</asp:HyperLink>

или

 <asp:HyperLink ID="HyperLink1" 
                href="#" 
                runat="server">HyperLink</asp:HyperLink>

или jquery добавьте класс к ссылке, в которой вы не хотите иметь обратную передачу (nopostback):

$("a.nopostback").bind('click', function () {
     return false;
})

Ответ 2

Вы можете установить атрибуты для элементов на стороне сервера.

<asp:HyperLink ID="HyperLink1" runat="server" Text="Click me"
    href="#" style="color: red;" />

В коде, а также, используя свойство Attributes

HyperLink1.Attributes

Ответ 3

На самом деле, добавив элемент управления на страницу без, атрибут href/NavigateUrl предлагает максимальную гибкость.

<asp:HyperLink ID="HyperLink1" runat="server"/>

Затем присвоение атрибута href в вашем коде выглядит как ответ Бруно:

HyperLink1.Attributes.Add("href","{your-value-here}");

Хотя, Бруно и Каспар отвечают на работу, они ломаются в определенных контекстах. Например, предположим, что ваш элемент управления HyperLink вложен в ретранслятор. Если вы затем хотели условно установить атрибут href на фактический URL или "#", эти подходы не будут работать. "#" Будет отображаться каждый раз.