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