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;"

Вы должны удалить OnClientClick="return false;" запустить метод на стороне сервера.

Если браузер перенаправляет на неправильную страницу, проверьте LockerLoginURL значение настройки приложения в web.config, Это должно соответствовать URL, на который вы перенаправлены.

Измените это на правильный URL.

Другие вопросы по тегам