Создание интерактивных ссылок во время выполнения веб-формы c # aspx - PullRequest
0 голосов
/ 30 ноября 2009

Я создаю ссылки asp, используя response.write в c #, тот же код HyperLink работает плавно, когда вставляется непосредственно в код asp, но когда я копирую / вставляю его в response.write (" ... ") он выглядит как неокрашиваемый черный текст.

Я что-то забыл?

<asp:HyperLink ID='HyperLink1' runat='server' NavigateUrl='Exibe.aspx'> CLICK HERE </asp:HyperLink>

этот точный код выше, брошенный в исходник aspx, работает очень

response.write("<asp:HyperLink ID='HyperLink1' runat='server' NavigateUrl='Exibe.aspx'> CLICK HERE </asp:HyperLink>");

и это превращается в черный текст

Ответы [ 3 ]

2 голосов
/ 30 ноября 2009

Вы не можете вставить тег asp: Hyperlink непосредственно в поток ответа, как этот, поскольку гиперссылка на самом деле является элементом управления, который должен сам "визуализироваться" (если вы замените его на обычный тег "a" привязки / гиперссылки, он будет работает нормально).

Вместо этого вам нужно либо создать элемент управления и добавить его на страницу программно, либо, возможно, использовать элемент управления повторителя для визуализации якорей.

0 голосов
/ 30 ноября 2009

Если вы хотите динамически генерировать гиперссылку на стороне сервера, как это, вы можете использовать Response.Write с тегом <a>, как говорит slugster, или альтернативно рассмотреть элемент управления ASP: Literal, который отображает именно то, что вы даете даже если он содержит разметку, например

В вашей разметке:

<asp:literal runat="server" id="MyLiteral" />

В вашем коде:

string myHTMLFragment;

myHTMLFragment = "Hello. I am a link pointing to <a href="http:stackoverflow.com">StackOverflow</a>";

MyLiteral.Text = myHTMLFragment; 
0 голосов
/ 30 ноября 2009

Вы пытаетесь делать совершенно разные вещи:

  1. разметка (asp: HyperLink) будет скомпилирована.
  2. Response.Write («asp: HyperLink») НЕ БУДЕТ. Он будет отображать текст как есть, и, конечно, вы не увидите никакой ссылки, фактически вы должны увидеть текст внутри тега asp: HyperLink (включая сам тег в источнике HTML).

Если вы хотите создать ссылку в режиме реального времени, вы можете сделать это, используя следующие фрагменты кода:

<asp:HyperLink ID='HyperLink1' runat='server' NavigateUrl='<%= GetDynamicUrl() %>'> CLICK HERE </asp:HyperLink>
/// Or plain HTML
<a href="<%= GetDynamicUrl()"><%= GetTheLinkText() %></a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...