我的页面上有以下两个控件:
<asp:LinkButton ID="OpenLB" runat="server" >Open</asp:LinkButton>
<asp:HyperLink ID="OpenHL" runat="server">Open</asp:HyperLink>
我在页面加载期间设置它们,如下所示:
OpenLB.PostBackUrl = @"file:\\web\documents-emails\doc1.docx";
OpenHL.NavigateUrl = @"file:\\web\documents-emails\doc1.docx";
OpenHL有效,它会打开word文件。
OpenLB不起作用,当我点击它时,我收到一个错误弹出窗口,上面写着:
Windows Internet Explorer无法找到 文件 '文件://web//documents-emails//doc1.docx'。 确保路径或Internet地址 是对的。
看起来网址不同或者其他什么,我该如何解决?
答案 0 :(得分:6)
LinkButton的工作原理是使用给定的URL将网页发布回服务器。它以超链接的样式显示按钮,但使用javascript将表单发布回给定URL的服务器。由于您无法POST到本地文件,因此无法将其与file:
网址一起使用。 HyperLink只会创建一个锚点,导致浏览器的位置在点击时设置为url。
答案 1 :(得分:2)
HyperLink
旨在链接到其他网页或文件。它只是<a>
标记的包装。
LinkButton
用于回发页面并在服务器端触发事件。
首先确保在每种情况下都使用正确的控制类型。
答案 2 :(得分:0)
我认为只是在一个案例中你导航到该文件,它按预期打开另一个你要求它发布到docx文件,当它应该是一个有效的URL
答案 3 :(得分:0)
linkbutton的默认行为是回发到aspx页面以处理回发事件,以响应最终用户点击链接。默认情况下,postbackurl为空,表示链接发布回当前页面。设置postbackurl属性用于跨页回发,在这种情况下,您将在另一个apsx页面上处理click事件。