【问题标题】:ASP.Net NavigateUrl to remote serverASP.Net NavigateUrl 到远程服务器
【发布时间】:2013-01-19 00:39:12
【问题描述】:

有没有办法使用 NavigateUrl 从网格视图内的远程服务器目录打开 PDF 文件?我可以从文本框中检索文件编号并生成链接,但是当您单击链接时,什么也没有发生。我的 NavigateUrl 是否会因为它位于远程服务器上并试图在 Web 浏览器中打开而被格式化?我的代码如下。提前致谢。

            <asp:TemplateField>
                <ItemTemplate>
                    <asp:HyperLink ID="HyperLink1" runat="server" 
                        NavigateUrl='<%# Eval("Name", "file:\\fileserver\pdf\{0}") %>' 
                        Target="_blank" Text='<%# Eval("Name", "{0:d}") %>'></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="Name" DataFormatString="{0:d}" HeaderText="FILE NUMBER" />
            <asp:BoundField DataField="CreationTime" DataFormatString="{0:d}" HeaderText="DATE ADDED" />
            <asp:BoundField DataField="Length" DataFormatString="{0:#,### bytes}" HeaderText="FILE SIZE" />

【问题讨论】:

    标签: asp.net gridview navigateurl


    【解决方案1】:

    导航 url 需要看起来像一个 URL,而不是物理文件路径。类似于http://server/path/x.pdf。如果您拥有存储文档的共享,请考虑添加指向远程服务器和目录的虚拟目录。之后就可以使用http://yourserver/virtualpath/x.pdf从你的asp.net应用程序访问文件了

    【讨论】:

    • 谢谢。在 IIS 中创建虚拟目录。会让你知道的。
    • 好消息。听取您的建议并创建了一个虚拟目录子文件夹并将 NavigateUrl 更改为 =''。刷新浏览器,单击文件编号链接,打开一个显示 pdf 文件的新选项卡。问题解决了。还有什么我需要更正的吗?
    【解决方案2】:

    您需要通过 http:// 而不是 file:// 访问该文件,才能使链接正常工作。

    设置完成后,使用 Server.MapPath() 方法根据文件路径生成 URL。

    【讨论】:

    • 谢谢。我已将其更改为 NavigateUrl='' 现在我得到“不是有效的虚拟路径“ 错误。如何使 pdf 文件可通过 http 访问?
    • 有两件事要检查:首先,相关文件夹是否已读取 ASP.Net 工作进程和网络服务(通常运行您的 Web 服务器的两个服务)的权限其次:您始终可以将您的 PDF 文件复制到网站根目录中的目录中。
    • 感谢您的帮助。通过 http:// 创建一个虚拟目录以使文件可访问解决了该问题。
    • 听起来不错。确保投票并将其标记为答案。 8^D 让 SO 社区保持强大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    相关资源
    最近更新 更多