C# iPostBack的问题

C# iPostBack的问题,c#,.net,C#,.net,我有一个.aspx页面,如果单击该页面上的按钮,它会向客户发送一封信。Onclick页面调用自身,因此邮件发送类位于同一文件中。但是,我不希望在页面加载时发送邮件。我希望它在单击按钮时发送信件,因此,我尝试使用以下代码: void page_Load(Object sender, System.EventArgs e) { if (IsPostBack) { SendMail(); } } protected override void OnLoad(S

我有一个.aspx页面,如果单击该页面上的按钮,它会向客户发送一封信。Onclick页面调用自身,因此邮件发送类位于同一文件中。但是,我不希望在页面加载时发送邮件。我希望它在单击按钮时发送信件,因此,我尝试使用以下代码:

void page_Load(Object sender, System.EventArgs e)
{
    if (IsPostBack)
    {
        SendMail();
    }
}
protected override void OnLoad(System.EventArgs e)
{
    base.OnLoad(e);

    if (IsPostBack)
    {
        SendMail();
    }
}

但它不起作用。我做错了什么?

看起来页面没有找到页面加载的正确事件处理程序,请检查大小写并将其更正为页面加载

查看是否有效(用以下代码替换
页面加载
方法):


您当前正依赖功能来连接页面事件。这是缓慢和有问题的,可能是您的问题的原因。我给你的方法覆盖了
页面。OnLoad
,应该也能解决这个问题。

为什么不使用
按钮的
点击事件呢

您所说的是,您只想在单击特定按钮时发送电子邮件。那么为什么不注册到它的click事件,而不是用额外的代码使
页面加载膨胀呢


仅当按钮的单击导致
回发时才会引发按钮的单击事件。因此,这是最好的选择。

为按钮的单击事件创建一个事件处理程序(只需在Visual Studio的设计器中双击按钮)


使用
页面加载
将导致用户在任何情况下发回邮件时发送电子邮件,而不仅仅是单击按钮。

每次发布页面时都会引发页面加载事件,以及通过回发回调,如果要使用服务器端事件,应在按钮的单击事件中调用SendMail方法:


请在MSDN上阅读更多信息:

为什么不将sendMail函数放在按钮单击事件中?是否确实调用了
Page\u Load
方法?是的,确实调用了Page\u Load,因为如果我删除IsPostBack条件,它将正常发送邮件。Nt工作也可能意味着服务器没有发送邮件。你检查过这个了吗?没有iPostBack它能用吗?不,它不能用。给出了一条错误消息,没有任何内容可覆盖。情况是,我的按钮也调用了JavaScript函数。如果我创建了一个脚本,那么我将如何使用相同的单击调用JavaScript函数呢?好的,问题已经解决了。通过OnClientClick=“JavaScript:myfunction()”创建并找到了运行JavaScript的方法。谢谢你的帮助。我的按钮也会调用JavaScript函数。如果我创建了一个脚本,那么我将如何使用相同的单击调用JavaScript函数呢?好的,问题已经解决了。通过OnClientClick=“JavaScript:myfunction()”创建并找到了运行JavaScript的方法。谢谢你的帮助。
protected void Page_Load(object sender, EventArgs e) 
{
   if (!IsPostBack && !IsCallback)
   {
      /*occurs the first time the page is loaded*/
   }        
  if (IsPostBack)
  {
     /*occurs every time a postback is raised (e.g. by form submission) */
  }
  if (IsCallback)
  {
     /*occurs every time a callback is raised, e.g. by generating callbacks by means of AJAX/
  }
}
protected void  SendMail_Click(object sender, EventArgs e) { SendMail(); }