【发布时间】: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:/ 没有任何反应
-
创建一个仅包含
<html><body><a href="file:///c:/temp">temp</a> </body></html>的文件,在浏览器中打开并查看链接是否有效。对我有用——如果它对你不起作用,那么我会寻找禁用此功能的浏览器设置。此外,浏览器之间的行为也有所不同——Chrome 在浏览器中呈现目录列表,而 IE 打开资源管理器窗口。 -
是的,我已经明白了,Tony :),我一直在尝试使用 IE。当我在 Chrome 中尝试它时,它只会像你说的那样在浏览器中打开目录列表,这也可以。我会用新的 html 文件试试你的建议。