【问题标题】:asp.net LinkButton HyperLink problemasp.net LinkBut​​ton超链接问题
【发布时间】:2023-03-28 05:58:01
【问题描述】:

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

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

网址好像不一样了,怎么解决?

【问题讨论】:

    标签: .net asp.net hyperlink linkbutton


    【解决方案1】:

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

    【讨论】:

    • 同意。 PostBackUrl 的目的是允许您的表单回发到另一个 URL,而不是默认的回发到页面本身的操作。
    【解决方案2】:

    HyperLink 旨在链接到另一个页面或文件。它只是 &lt;a&gt; 标记的包装器。

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        MSDN Postbackurl Property

        【讨论】:

          猜你喜欢
          • 2011-06-19
          • 2016-11-17
          • 1970-01-01
          • 1970-01-01
          • 2011-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多