asp: кнопка не запускает событие onclick
У меня есть кнопка как
<asp:Button ID="Button1" runat="server" Text="Submit" onclick="RedirectToLocker"
OnClientClick="return false;" UseSubmitBehavior="false" />
и метод в коде, как
public void RedirectToLocker(object sender, EventArgs e)
{
Response.Redirect(ConfigurationManager.AppSettings["LockerLoginURL"]);
}
Но когда я нажимаю кнопку, она не попадает в код метода. Если я удалю OnClientClick = "return false;" Затем кнопка отправляет форму и переходит не на ту страницу. Что я делаю неправильно?
РЕДАКТИРОВАТЬ: я использую OnClientClick = "return false;" код, потому что без нее кнопка по какой-то причине действует как отправка для формы, в которую она вложена, и сразу же перенаправляет на URL-адрес действия формы вместо того, чтобы нажимать на мой код.
3 ответа
Когда обработчик события на стороне клиента возвращает false, обратная передача опускается.
OnClientClick="return false;" // <-- no postback
Поэтому вам нужно либо удалить его, либо сообщить нам, почему вы на самом деле хотите вернуть false из события js-onclick. Если Response.Redirect
идет не на ту страницу, вы можете изменить это.
Изменить. Таким образом, вы перенаправляете на другую страницу, устанавливая форму Action
на другой URL. Тогда вы могли бы установить кнопки PostBackUrl
на тот же URL, что и текущая страница. Тогда это ударило бы за код.
Вы должны удалить OnClientClick="return false;"
запустить метод на стороне сервера.
Если браузер перенаправляет на неправильную страницу, проверьте LockerLoginURL
значение настройки приложения в web.config
, Это должно соответствовать URL, на который вы перенаправлены.
Измените это на правильный URL.