Событие LinkButton не запускается, когдаатрибут установлен - PullRequest
2 голосов
/ 27 января 2011

У меня есть действие формы на странице ASCX с внешним URL-адресом

<form id="fLoginForm" runat="server" action="http://external.url" method="post" defaultbutton="bSignIn">

Внутри находится стандартная кнопка ASP ASP

<asp:LinkButton CssClass="btn" ID="bSignIn" runat="server" Text="Sign In" OnClick="bSignIn_Click" />

Событие "bSignin_Click" никогда не запускается, когда у меня установлен action="http://external.url" для тега формы. Однако, когда я удаляю действие, оно работает как положено. Я думал, что для runat='server' форм, форма будет всегда отправлять обратно? Мне нужно прочитать URL из атрибута действия, а затем перенаправить на него с некоторыми скрытыми значениями ввода также на странице.

Спасибо.

Ответы [ 4 ]

1 голос
/ 28 января 2011

Что ж, на самом деле поведение было очень странным, поскольку на компьютере коллеги оно велось совершенно иначе - перепроверка в решении из SVN, и это работало.Странно.

1 голос
/ 27 января 2011

Почему бы не обработать функцию входа в обработчике bSignIn_Click()?

А затем перенаправить пользователя на нужный URL, используя Response.Redirect("http://external.url");

1 голос
/ 27 января 2011

На самом деле, когда вы нажимаете на кнопку ссылки, ваша форма отправляется обратно для обработки события нажатия.В форме действия вы указали URL-адрес действия, и он будет перенаправлен на ваш URL-адрес действия.

Логически вы делаете неправильно, вы должны удалить URL-адрес действия

0 голосов
/ 27 января 2011

В имеющейся форме при нажатии на кнопку ссылки все данные в вашей форме публикуются в URL, а не отправляются обратно в ту же форму (отсюда и термин «обратная передача»), где вы можете обрабатывать все эти события. .

Вы можете попробовать записать этот URL-адрес в скрытое поле (вместо атрибута действия формы) и прочитать значение этого скрытого поля в codebehind.

...