asp.net LinkButton HyperLink проблема - PullRequest
4 голосов
/ 05 марта 2010

Следующие два элемента управления на моей странице:

<asp:LinkButton ID="OpenLB" runat="server" >Open</asp:LinkButton>
<asp:HyperLink ID="OpenHL" runat="server">Open</asp:HyperLink>

Я установил их во время загрузки страницы так:

OpenLB.PostBackUrl = @"file:\\web\documents-emails\doc1.docx";
OpenHL.NavigateUrl = @"file:\\web\documents-emails\doc1.docx";

OpenHL работает, он открывает файл слова.

OpenLB не работает, когда я нажимаю на него, я получаю всплывающее сообщение об ошибке:

Windows Internet Explorer не может найти файл 'Файл: //web//documents-emails//doc1.docx. Убедитесь, что путь или интернет-адрес правильно.

Похоже, что URL-адрес отличается или что-то, как я могу это исправить?

Ответы [ 4 ]

6 голосов
/ 05 марта 2010

LinkButton работает, отправляя веб-страницу обратно на сервер, используя указанный URL-адрес. Она отображает кнопку в стиле гиперссылки, но использует javascript для отправки формы обратно на сервер по указанному URL-адресу. Вы не сможете использовать его с URL-адресом file:, так как вы не можете отправить его в локальный файл. HyperLink просто создает привязку, которая приводит к тому, что в браузере указывается URL-адрес при щелчке.

2 голосов
/ 05 марта 2010

A HyperLink предназначен для ссылки на другую страницу или файл. Это просто оболочка для тега <a>.

A LinkButton предназначен для отправки назад страницы и запуска события на стороне сервера.

Сначала убедитесь, что вы используете правильный тип управления в каждой ситуации.

0 голосов
/ 05 марта 2010

Поведение кнопки ссылки по умолчанию - отправка сообщения обратно на страницу aspx для обработки события обратной отправки в ответ на щелчок ссылки конечным пользователем. По умолчанию postbackurl пуст, что означает, что ссылка отправляется обратно на текущую страницу. Установка свойства postbackurl предназначена для постбэков между страницами, в этом случае вы будете обрабатывать событие click на другой странице apsx.

MSDN Postbackurl Property

0 голосов
/ 05 марта 2010

Я думаю, это просто, что в одном случае вы переходите к файлу, и он открывается, как и ожидалось, в другом случае вы просите его отправить в файл docx, когда это должен быть действительный URL

...