在 c# aspx webform 运行时创建可点击的链接
我在 c# 中使用 response.write 创建 asp 链接,相同的超链接代码在直接插入到 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>");
,并且变成了黑色文本
I'm creating asp links using response.write in c#, the same HyperLink code works smoothly when inserted directly in the asp code, but when i copy/paste it to the response.write("...") it appears as an unclickable black text.
Am i forgetting something?
<asp:HyperLink ID='HyperLink1' runat='server' NavigateUrl='Exibe.aspx'> CLICK HERE </asp:HyperLink>
this exact code above thrown in the aspx source works greatly
response.write("<asp:HyperLink ID='HyperLink1' runat='server' NavigateUrl='Exibe.aspx'> CLICK HERE </asp:HyperLink>");
and this turns into a black text
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能像这样将 asp:Hyperlink 标记直接插入到响应流中,因为超链接实际上是一个需要“呈现”自身的控件(如果您将其替换为普通的“a”锚/超链接标记,它将正常工作) 。
相反,您需要创建控件并以编程方式将其添加到页面,或者使用转发器控件来呈现锚点。
You cannot insert an asp:Hyperlink tag directly into the response stream like that, as the hyperlink is actually a control that needs to "render" itself (if you replaced that with a normal "a" anchor/hyperlink tag it would work fine).
Instead you need to either create the control and add it to the page programatically, or maybe use a repeater control to render the anchors.
您正在尝试做完全不同的事情:
如果您想以匿名方式创建链接,可以使用下面的代码片段来完成:
You are trying to do totally different things:
If you want to create a link dunamically you can do it using code snippets below:
如果您想像这样在服务器端动态生成超链接,您可以像 slugster 所说的那样使用带有
标记的 Response.Write,或者考虑使用 ASP:Literal 控件准确呈现您所提供的内容,即使它包含标记,例如
在您的标记中:
在您的代码中:
If you want to generate a hyperlink dynamically on the server-side like this, you can either use Response.Write with an
<a>
tag like slugster says, or alternatively consider the ASP:Literal control which renders exactly what you give it even if it contains markup e.g.In your markup:
In your code: