我有一个带有超链接标记的asp.net页面,我的想法是我希望能够点击超链接(它将具有系统上目录的地址)并且能够打开目录
我的超链接标记位于gridview中,其代码如下所示:
<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 \子目录这样的目录,它显示为 - file:/// \\ server \ directory \ subdirectory,它可以正常工作。
如果我将目录作为C:/ directory /子目录输入,则显示为file:/// c:/ directory / subdirectory,但点击它不会执行任何操作。
为什么其中一个会起作用而另一个不起作用?
更新 \\ server \ directory \子目录与C:/ directory /子目录无关。 C:/ one当然是本地的,另一个是服务器上文件的地址。
答案 0 :(得分:0)
最新版本的浏览器会禁用指向本地内容的链接(除非链接位于文件中)作为安全功能。
请参阅Workaround for href="file://///..." in Firefox
此外,搜索“iis enable local files links”并获得大量点击。您似乎可以通过禁用相关的IE安全性来解决此问题:https://superuser.com/questions/149068/how-to-add-a-local-file-to-trusted-zone-in-ie8。我现在无法测试,因为我在工作,浏览器设置被锁定。