ASP.Net нет перенаправления URL при нажатии действительной ссылки - PullRequest
2 голосов
/ 10 декабря 2010

Это связано с другим постом, у меня были проблемы с установкой абсолютного пути URL-адреса из кода в веб-форме, но я смог его решить. У меня есть файл pdf на общем ресурсе сервера, на который я бы хотел указать ссылку, URL-адрес следующий:

file://///myServer/share/MyFile.pdf

Я подтвердил, что PDF открывается правильно, добавив его вручную в адресную строку в моем браузере. После того, как я наберу его, PDF откроется в моем браузере, как ожидалось Когда я пытаюсь нажать на ссылку в моей веб-форме, ничего не происходит. Я сравнил строки URL из ссылки и то, что я печатаю в своем браузере, они одинаковы. Почему якорь не перенаправляет на указанное место, а ввод его вручную в адресной строке делает? Любая помощь приветствуется.

Ответы [ 3 ]

2 голосов
/ 10 декабря 2010

Если ваша страница обслуживается удаленным сервером, но содержит ссылки на локальные файлы, большинство современные браузеры откажутся перемещаться по этим ссылкам из соображений безопасности.

Возможно, вам придется обслуживать связанный контент с сервера, а не с клиентского компьютера, чтобы это работало.

0 голосов
/ 10 декабря 2010

Вот код C #, который я использую для сканирования содержимого каталога и создания ссылки на файлы, которые находятся внутри папки на сервере. Похоже, у вас есть только один файл, но он все равно будет работать нормально, и вы можете настроить его при необходимости.

Очевидно, это направлено на создание списка ссылок из файлов внутри папки, и это определенно немного излишне для вашего примера, но, возможно, это даст вам некоторые идеи.

DirectoryInfo di = default(DirectoryInfo);
        FileInfo[] files = null;
        DataTable dt = new DataTable();
        DataRow dr = null;
        System.DateTime filedate = default(System.DateTime);

        di = new DirectoryInfo(Server.MapPath("~/forms"));
        files = di.GetFiles();

        dt.Columns.Add("name");
        dt.Columns.Add("filepath");
        dt.Columns.Add("filedate");


        foreach (FileInfo inf in files)
        {
            filedate = inf.LastWriteTime;

            dr = dt.NewRow();
            dr["name"] = inf.Name;
            dr["filepath"] = inf.FullName;
            dr["filedate"] = String.Format("{0:MM/dd/yyyy}", filedate);
            dt.Rows.Add(dr);
        }

        DataList1.DataSource = dt;
        DataList1.DataBind();

А на вашей странице aspx:

 <asp:DataList ID="DataList1" runat="server" RepeatColumns="1" GridLines="none">
                <HeaderTemplate>
                    <table>
                        <tr>
                            <td style="width: 450px">
                                <asp:Label ID="label1" runat="server" Text="Form Name" Font-Bold="true"></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="label2" runat="server" Text="Creation Date" Font-Bold="true"></asp:Label>
                            </td>
                        </tr>
                    </table>
                </HeaderTemplate>
                <ItemTemplate>
                    <table>
                        <tr>
                            <td style="width: 446px">
                                <a target="_blank" href='http://yourwebserverpath.com/forms/<%# DataBinder.Eval(Container.DataItem, "name") %>'>
                                    <%# DataBinder.Eval(Container.DataItem, "name") %></a>
                            </td>
                            <td style="padding: 0 0 0 5px">
                                <%#DataBinder.Eval(Container.DataItem, "filedate")%>
                            </td>
                        </tr>
                    </table>
                </ItemTemplate>
                <FooterTemplate>
                     <table>
                        <tr>
                            <td style="width: 446px">

                            </td>
                            <td style="padding: 0 0 0 5px">

                            </td>
                        </tr>
                    </table>
                </FooterTemplate>
            </asp:DataList>
0 голосов
/ 10 декабря 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...