4

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

<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 找不到文件“file://web//documents-emails//doc1.docx”。确保路径或 Internet 地址正确。

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

4

4 回答 4

6

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

于 2010-03-05T19:37:40.230 回答
2

AHyperLink旨在链接到另一个页面或文件。它只是一个<a>标签的包装器。

ALinkButton旨在回发页面并在服务器端触发事件。

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

于 2010-03-05T19:46:23.730 回答
0

我认为这很简单,在一种情况下您正在导航到该文件,并且它按预期打开,另一种情况下您要求它发布到 docx 文件,而它应该是一个有效的 URL

于 2010-03-05T19:37:16.737 回答
0

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

MSDN Postbackurl 属性

于 2010-03-05T19:46:19.127 回答