Я не уверен, почему люди предлагают отключить AutoEventWireup
.Не делайте этого, если вы не хотите вручную подключать события.Например, вам нужно написать следующую строку, чтобы любой код в обработчике событий Page_Load
выполнялся при запросе страницы:
Load += new EventHandler(Page_Load);
Итак, пусть AutoEventWireup
его значение по умолчанию (true
) и убедитесь, что в вашем коде нет такого кода.
Еще одна важная вещь, которую нужно понять, это то, что это связано не с отправкой электронной почты как таковой, а с жизненным цикломтвоя страница.У вас может быть код в Page_Load
, который запускает код отправки почты или даже код JavaScript, который вызывает событие.Убедитесь, что это не так, очистив свой код.Например, вы можете начать сначала со следующей страницы примера, на которой показано, что обычно события нажатия кнопки генерируются только один раз за запрос, и постепенно добавляйте к ней свой код:
ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<br />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
Код позади
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
private static int times = 0;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
times++;
Label1.Text = times.ToString();
}
}
}
Надеюсь, это поможет.Я использую Visual Studio 2017 и целевой платформой является .NET Framework 4.6.1.