asp.net LinkBut​​ton HyperLink问题

时间:2010-03-05 19:29:59

标签: .net asp.net hyperlink linkbutton

我的页面上有以下两个控件:

<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地址   是对的。

看起来网址不同或者其他什么,我该如何解决?

4 个答案:

答案 0 :(得分:6)

LinkBut​​ton的工作原理是使用给定的URL将网页发布回服务器。它以超链接的样式显示按钮,但使用javascript将表单发布回给定URL的服务器。由于您无法POST到本地文件,因此无法将其与file:网址一起使用。 HyperLink只会创建一个锚点,导致浏览器的位置在点击时设置为url。

答案 1 :(得分:2)

HyperLink旨在链接到其他网页或文件。它只是<a>标记的包装。

LinkButton用于回发页面并在服务器端触发事件。

首先确保在每种情况下都使用正确的控制类型。

答案 2 :(得分:0)

我认为只是在一个案例中你导航到该文件,它按预期打开另一个你要求它发布到docx文件,当它应该是一个有效的URL

答案 3 :(得分:0)

linkbutton的默认行为是回发到aspx页面以处理回发事件,以响应最终用户点击链接。默认情况下,postbackurl为空,表示链接发布回当前页面。设置postbackurl属性用于跨页回发,在这种情况下,您将在另一个apsx页面上处理click事件。

MSDN Postbackurl Property