ASP.Net NavigateUrl на удаленный сервер

Есть ли способ открыть файл PDF из каталога удаленного сервера внутри gridview с помощью NavigateUrl? Я могу получить номер файла из текстового поля и сгенерировать ссылку, но при нажатии на ссылку ничего не происходит. Может ли мой NavigateUrl быть отформатирован неправильно, потому что он находится на удаленном сервере и пытается открыть в веб-браузере? Мой код ниже. Заранее спасибо.

            <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" />

2 ответа

Решение

Вам нужно иметь доступ к файлу через http://, а не file://, чтобы ссылка работала правильно.

Как только это будет установлено, используйте метод Server.MapPath() для генерации URL на основе пути к вашему файлу.

URL-адрес навигации должен выглядеть как URL, а не как физический путь к файлу. что-то вроде http://server/path/x.pdf, Если у вас есть общий ресурс, в котором хранятся документы, рассмотрите возможность добавления виртуального каталога, который указывает на удаленный сервер и каталог. После этого можно будет получить доступ к файлам из вашего приложения asp.net с помощью http://yourserver/virtualpath/x.pdf

Другие вопросы по тегам