Почему в ASP.NET происходит событие нажатия кнопки при обновлении страницы?

На моем веб-сайте ASP.Net у меня есть кнопка. Когда я нажимаю кнопку, а затем перезагружаю страницу через браузер, срабатывает событие нажатия кнопки. Будет проблема, пожалуйста, помогите мне.

Ответы

Ответ 1

Если я правильно понял.

У вас есть веб-форма с кнопкой.

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

Затем вы нажмете обновление, и страница снова обработает обработчик событий.

Причиной этого является то, что вы обновляете последнюю информацию, отправленную на сервер. Какая информация об щелчке на кнопке __doPostback. Вот почему вы снова видите событие кнопки.

Ниже приведена статья о том, как обнаружить обновление после обратной передачи.

Ответ 2

Это потому, что нажатие этой кнопки отправляет запрос POST на вашу страницу. Данные POST хранятся в заголовках http, а при обновлении они снова отправляются на сервер.

Ваш браузер должен предупредить вас, когда вы попытаетесь обновить страницу.

Ответ 3

Это по дизайну. Когда вы нажимаете кнопку на стороне сервера (с атрибутом runat="server"), щелчок вызовет обратную передачу и произойдет событие нажатия кнопки.

Если вам нужно поведение на стороне клиента, вам нужно использовать атрибут OnClientClick, как описано в this Статья MSDN (Как сделать: Ответьте на события управления веб-сервером Button в клиенте Script).

Ответ 4

Если это действительно важно для кого-то, они могут обновить страницу снова с помощью Response.Redirect(). Это самое простое решение, которое я смог найти.

Ответ 5

У меня была такая же проблема, и она была решена, поставив кнопку asp: AsyncPostBackTrigger в updatePanel.

Ответ 6

Если вы хотите обновить часть своей страницы, тогда установите элемент управления внутри UpdatePanel, если элемент управления вызывает PostBack

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
     <ContentTemplate>
        <asp:Button CssClass="btn btn-default" 
          onClick="uploadAttachmentToList" runat="server" 
          ID="btnUpload" ClientIDMode="Static" Text="Upload" 
        />
     </ContentTemplate>
</asp:UpdatePanel>

Ответ 7

Самый простой способ решить эту проблему - перенаправить вашу страницу на какой-либо URL или обновить текущую страницу с помощью Response.Redirect(Request.RawUrl);