【问题标题】:Hyperlink URL causing resource not found error超链接 URL 导致找不到资源错误
【发布时间】:2017-02-09 17:04:55
【问题描述】:

我有一个动态创建的标签,用于显示内容和文件的本地链接,以便可以在浏览器中下载或查看这些文件。

label.Text="..content.." + " <asp:HyperLink runat=\"server\" NavigateUrl=\"~/c/customer/uploads/TestDocument.docx\">HyperLink</asp:HyperLink>";

我可以使用超链接控件或&lt;a&gt;标签在动态标签中显示链接,我可以看到链接地址基本正确,只是Visual Web Developer 2010 Express自动添加了根路径作为前缀

http://localhost:50969/website/

到路径字符串,后跟我添加的 URL,用 2 个单引号括起来。

http://localhost:50969/website/'c/customer/uploads/TestDocument.docx'

当我点击链接时,页面会抛出resource cannot be found 错误。我认为 2 个单引号导致错误。有没有办法删除单引号?或者有更好的技术吗?

【问题讨论】:

  • 你能用NavigateUrl='~/c/customer/uploads/TestDocument.docx'代替NavigateUrl=\"~/c/customer/uploads/TestDocument.docx\"吗?参考:Server tag not parsed in asp:Hyperlink
  • @KeyurPATEL 这是生成的 url localhost:50969/website/'c/customer/uploads/…' 这是相同且相同的错误但技术上不正确的语法,因为双引号表示链接按钮开始标记的结尾。
  • @KeyurPATEL 你的建议很有道理。通过操作,单引号被删除。我会不断更新帖子。

标签: c# asp.net hyperlink


【解决方案1】:

您正在尝试将 asp.net 控件作为字符串添加到标签,但这永远不会起作用。

通过将HyperLink 控件放置在aspx 页面上并设置NavigateUrl 属性来正确使用它。

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/c/customer/uploads/TestDocument.docx">HyperLink</asp:HyperLink>

或者创建一个“普通”超链接作为字符串。

label.Text = "..content..<a href=\"~/c/customer/uploads/TestDocument.docx\">HyperLink</a>";

【讨论】:

  • 如果你正确阅读问题,你会看到控件或链接不能放在aspx页面上,因为它必须动态添加或作为字符串添加。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 2022-01-11
  • 1970-01-01
相关资源
最近更新 更多