我正在使用c#中的 response.write 创建asp链接,当直接插入到asp代码中时,相同的HyperLink代码可以顺利运行,但是当我将其复制/粘贴到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>");
这会变成黑色文字
答案 0 :(得分:2)
你不能将asp:Hyperlink标签直接插入到响应流中,因为超链接实际上是一个需要“渲染”自身的控件(如果你用普通的“a”锚/超链接标签替换它,它会工作得很好。
相反,您需要创建控件并以编程方式将其添加到页面,或者使用转发器控件来渲染锚点。
答案 1 :(得分:0)
你正在尝试完全不同的事情:
如果您想以动态方式创建链接,可以使用以下代码段进行操作:
<asp:HyperLink ID='HyperLink1' runat='server' NavigateUrl='<%= GetDynamicUrl() %>'> CLICK HERE </asp:HyperLink>
/// Or plain HTML
<a href="<%= GetDynamicUrl()"><%= GetTheLinkText() %></a>
答案 2 :(得分:0)
如果你想像这样在服务器端动态生成超链接,你可以使用带有<a>
标签的Response.Write,如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;