【问题标题】:issues with path using html hyperlink使用 html 超链接的路径问题
【发布时间】:2013-11-19 06:21:08
【问题描述】:

默认页面上的 ASP.NET 应用程序 我必须创建两个引用 PDF 文件的链接。

例子:

<a href="Private/UserDocs/SIPCustomerUserGuideV2-2013.pdf" target="_blank">

PDF文件所在的代码结构为:

Web.FormProject/Private/UserDocs/SIPCustomerUserGuideV2-2013.pdf     

Web.FormProject 之上是一个文件夹,Private 是 Web.FormProject 中的子文件夹,UserDocs 是 Private 文件夹下的子文件夹。该文件位于 UserDocs 中。

当我尝试使用上面的 URL 时,我什至没有任何错误。
但是当我将超链接更改为 将文件放入 Web.Form 项目(而不是任何子文件夹下)后,它工作正常。

我什至尝试过使用 asp:hyperlink 不起作用。 仅当我在服务器端使用带有代码的 asp:LinkBut​​ton 但 Response.AppendHeader("Content-Disposition", "inline; filename=SIPCustomerUserGuideV2-2013.pdf 中的 Content:Disposition "inline: ... "); 在同一个浏览器中打开它,我希望它在新浏览器中打开" 但我想要一个解决方案,将它用作上面给出的超链接。请回复。
问:

如何使它成为从 Web.Form Project/Private/UserDocs/path 打开的 PDF。
提前致谢。

【问题讨论】:

    标签: c# html asp.net .net


    【解决方案1】:

    试试:

    <a href='<%= ResolveUrl("~/Private/Docs/UserGuide.pdf") %>' target="_blank">Link To PDF</a>
    

    ResolveUrl() 方法将解析为完整路径。

    编辑

    经过一番交谈,我们发现他有一个配置:

    <location path="Private"> 
    <system.web> 
    <authorization> 
    <deny users="?"/> 
    </authorization> 
    </system.web> 
    </location> 
    

    即禁止未登录的用户下载文件。

    【讨论】:

    • 我试过了:用户指南仍然没有运气。谢谢。
    • 没有运气是什么意思?一个错误?没下载?你得到了什么?
    • 它根本没有打开。为什么我把文件放在根目录下它会打开。但是当我将文件放在子文件夹中时不会打开。
    • 因为您没有正确解析文件路径。 ResolveUrl 的工作方式如下: ResolveUrl("~/SubFolder/OtherSubfolder/File.PDF") 其中 ~/ 表示根目录。
    • Hanlet - 再次感谢您的努力和帮助。上帝保佑你。
    【解决方案2】:

    尝试从根解决它,不要忘记添加 runat 属性:

    <a href="~/Private/UserDocs/SIPCustomerUserGuideV2-2013.pdf" 
        target="_blank" runat="server">Link</a> 
    

    【讨论】:

    • 嗨。当页面第一次加载时,这是浏览器中的 URL:localhost:60837/LogOn.aspx。我试着按照你说的做,它仍然没有打开 PDF,而是显示相同的 LogOn.aspx 页面。
    • 你有登录名和密码吗?
    • 是的,我有登录名和密码。但这不需要登录。这是登录页面上的 PDF,单击它会打开。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2012-08-18
    • 2017-07-08
    • 2010-09-23
    • 2022-06-18
    • 2014-09-04
    • 1970-01-01
    相关资源
    最近更新 更多