【问题标题】:Why doesn't my hyperlink work?为什么我的超链接不起作用?
【发布时间】:2015-07-31 17:12:13
【问题描述】:

我有一个带有超链接标签的 asp.net 页面,我的想法是我希望能够单击超链接(其中将包含系统上目录的地址)并能够打开该目录.

我的超链接标签在一个网格视图中,它的代码如下所示:

<asp:HyperLink ID="eFileHyper" runat="server" Text='<%#Bind("hyperlink")%>' NavigateUrl='<%#Bind("hyperlink")%>' Target="_blank"></asp:HyperLink>

我在后端有一些代码将“file:///”添加到地址的开头,如下所示:

Dim dr As DataRow
Dim dt As DataTable
    dt = CType(Session("newEFileTable"), DataTable)

    dr("lastUpdated") = Now
    dr("hyperlink") = "file:///" & hyperLink.Text
    dt.Rows.Add(dr)

    ' Update session table
    Session("newEFileTable") = dt

    ' update gridview - This binds the Session to the gridview
    BindEFileData()

如果我进入这样的目录 \\server\directory\subdirectory 它会显示为 - file:/// \\server\directory\subdirectory 并且它工作正常。

如果我以 C:/directory/subdirectory 的形式输入目录,它会显示为 file:///c:/directory/subdirectory,但单击它不会执行任何操作。

为什么其中一个会起作用,而另一个不起作用?

更新 \\server\directory\subdirectory 和 C:/directory/subdirectory 无关。 C:/ 一个当然是本地的,另一个是服务器上文件的地址。

【问题讨论】:

  • url格式正确。它什么都不做或重定向到错误的地方?
  • 它什么也没做,我点击 C:/ 没有任何反应
  • 创建一个仅包含&lt;html&gt;&lt;body&gt;&lt;a href="file:///c:/temp"&gt;temp&lt;/a&gt; &lt;/body&gt;&lt;/html&gt; 的文件,在浏览器中打开并查看链接是否有效。对我有用——如果它对你不起作用,那么我会寻找禁用此功能的浏览器设置。此外,浏览器之间的行为也有所不同——Chrome 在浏览器中呈现目录列表,而 IE 打开资源管理器窗口。
  • 是的,我已经明白了,Tony :),我一直在尝试使用 IE。当我在 Chrome 中尝试它时,它只会像你说的那样在浏览器中打开目录列表,这也可以。我会用新的 html 文件试试你的建议。

标签: asp.net vb.net hyperlink


【解决方案1】:

最新版本的浏览器禁用指向本地内容的链接(除非链接在文件中)作为一项安全功能。

Workaround for href="file://///..." in Firefox

另外,搜索“iis 启用本地文件链接”,你会得到很多点击。看起来您可以通过禁用相关的 IE 安全性来解决此问题:https://superuser.com/questions/149068/how-to-add-a-local-file-to-trusted-zone-in-ie8。我现在无法测试,因为我正在工作并且浏览器设置被锁定。

【讨论】:

  • 谢谢托尼!我试试看
猜你喜欢
  • 1970-01-01
  • 2011-02-10
  • 2013-05-25
  • 1970-01-01
  • 2015-06-24
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多