【问题标题】:How to hyperlink an image in asp.net (C# / vb.net)?如何在 asp.net (C# / vb.net) 中超链接图像?
【发布时间】:2026-01-13 10:05:02
【问题描述】:

我有一个网页,我试图在其中超链接图像。该部分网页截图如下:

点击 pdf 图像时,它应该会打开一个 pdf。

此时,我可以创建一个在我的机器本地的pdf image


.aspx 文件中的代码为:

<div class="row" id="divViewAssessment" runat="server">
   <div class="itemtitle">
      <asp:Label ID="litBlankAssessment" runat="server"></asp:Label>
   </div>
   <div class="itemdata">
      <asp:ImageButton ID="btnViewAssessment" runat="server" ImageUrl="~/Images/doc_pdf.gif"
         CausesValidation="False" ValidationGroup="vgrp1" Enabled="true"></asp:ImageButton>
   </div>
</div>


我想知道我需要在.aspx.vb 文件中输入什么代码?我确定我需要在.aspx 中添加什么,但不确定需要在.aspx.vb (behind the code) 中添加什么。

我机器本地pdf的路径是"~/Licensee/" + CStr(Session("LicenseeCode")) + "/ViewSA/Lebanon Primary Care Standards for SW.pdf" LicenseeCode是MPHLB

【问题讨论】:

  • 你不需要把ImageUrl改成那个路径吗?
  • @ADyson 也许,我对 asp.net 的诗词不多,但我想知道我需要在 .aspx.vb 中添加什么吗?
  • 啊等一下,我知道了,图像只是一个缩略图,您希望它下载实际文件。您希望按钮指向 PDF。所以是的,你需要去了解如何在 ASP.NET 中开始文件下载,大量的教程。
  • @ADyson 我创建了一个图像,单击该图像,它应该在不同的选项卡中打开一个 pdf。我的机器本地 pdf 的路径是 "~/Licensee/" + CStr(Session("LicenseeCode")) + "/ViewSA/Lebanon Primary Care Standards for SW.pdf" LicenseeCode 是MPHLB
  • 或者用指向文件的超链接替换imagebutton,用图像而不是超链接中的文本。见*.com/questions/7167839/aspimage-with-link

标签: c# asp.net .net vb.net pdf


【解决方案1】:

ImageButton 控件用于触发回发,而不是导航到 URL。

改用HyperLink 控件。它有一个 ImageUrl 属性来设置显示的图像,还有一个 NavigateUrl 属性来设置你的目标 URL。

【讨论】:

  • 好的,我会这样做的,很快就会告诉你我做了什么。
  • 这是什么,我已经做到了&lt;div class="row" id="divViewAssessment" runat="server"&gt; &lt;div class="itemtitle"&gt; &lt;asp:Label ID="litBlankAssessment" runat="server"&gt;&lt;/asp:Label&gt; &lt;/div&gt; &lt;div class="itemdata"&gt; &lt;asp:hyperlink id="~/Licensee/" +"MPHLB"+ "/ViewSA/Lebanon Primary Care Standards for SW.pdf" runat="server"&gt; &lt;asp:image id="img" runat="server" imageurl="~/Images/doc_pdf.gif" /&gt; &lt;/asp:hyperlink&gt; &lt;/div&gt; &lt;/div&gt;
  • 很难说你在做什么。你为什么要为id 创建一个复杂的字符串? id 是您为控件指定的名称,不能包含标点符号或空格。此外,您在那里不需要Image 控件。你为什么这么做?请重新阅读我的答案,因为我认为您没有得到它。最后,如果您有一个复杂的 URL 要将 NavigateUrl 属性设置为,那么我想您需要从代码中执行此操作。 (还有一点:如果您将控件拖到表单上,它会为您输入基础知识。看起来您需要一些帮助。)
  • @flash:我不知道你为什么听不懂我的回答。将HyperLink 控件添加到您的表单。将 ImageUrl 属性设置为图像的 URL。将NavigateUrl 属性设置为您的PDF 文件的URL。不需要&lt;a&gt; 标签。不需要Image 控制。抱歉,但我不知道如何让它更简单。
  • 这就是我所期待的。 john/flash/whateveryournameis 可以吗?
【解决方案2】:

你可以使用下面的代码..

Protected Sub btnViewAssessment_Click(sender As Object, e As ImageClickEventArgs) Handles btnViewAssessment.Click

    Response.Redirect("Lebanon Primary Care Standards for SW.pdf")

End Sub

将您的 pdf 文件放入解决方案文件夹中。

【讨论】:

  • 这会起作用,但效率要低得多。它会导致当前页面的回发和服务器发出重定向,而常规链接只是提供浏览器可以直接导航到的 URL。
  • 好的,你要我放什么.aspx文件?
最近更新 更多