Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在页面重定向(C#/ASP.Net)后发布消息以确认发送的消息_C#_Asp.net_Smtp_Response.redirect - Fatal编程技术网

如何在页面重定向(C#/ASP.Net)后发布消息以确认发送的消息

如何在页面重定向(C#/ASP.Net)后发布消息以确认发送的消息,c#,asp.net,smtp,response.redirect,C#,Asp.net,Smtp,Response.redirect,您好,我刚刚在我的网站上设置了一个方法,从“联系我们”页面发送电子邮件,我想在他们发送电子邮件后清除asp.net表单中的所有电子邮件详细信息,因此我使用了response.redirect来刷新页面。我想显示一条消息或一个弹出窗口来显示消息已发送,但由于页面正在刷新,我试图写入的标签从未被调用。有没有办法解决这个问题,或者有没有办法在不重定向的情况下清除表单?以下是我正在使用的代码: protected void SubmitBtn_Click(object sender,EventArgs

您好,我刚刚在我的网站上设置了一个方法,从“联系我们”页面发送电子邮件,我想在他们发送电子邮件后清除asp.net表单中的所有电子邮件详细信息,因此我使用了response.redirect来刷新页面。我想显示一条消息或一个弹出窗口来显示消息已发送,但由于页面正在刷新,我试图写入的标签从未被调用。有没有办法解决这个问题,或者有没有办法在不重定向的情况下清除表单?以下是我正在使用的代码:

protected void SubmitBtn_Click(object sender,EventArgs e)
{
    MailMessage mailObj = new MailMessage(
       EmailTxt.Text, "xxxxx@xxxxx.com", SubjectTxt.Text, MessageTxt.Text);
    SmtpClient SMTPServer = new SmtpClient("localhost");
    try
    {
        SMTPServer.Send(mailObj);
        Response.Redirect("ContactMe.aspx");
        base.OnLoad(e);
        MessageLbl.Text = "Email Sent SucessFully.";
    }
    catch (Exception ex)
    {
        MessageLbl.Text = ex.ToString();
    }
}

非常感谢您的回复。
重定向是您的问题。您实际上是在刷新页面,之后的任何代码都是无关的。为什么不通过clode(即
myTextBox.Text=string.Empty
等)清除表单,然后设置消息文本

try
{
    SMTPServer.Send(mailObj);
    // Clear email form
    Control1.Text = string.Empty;
    Control2.Text = string.Empty;
    // etc...
    MessageLbl.Text = "Email Sent SucessFully.";
}
catch (Exception ex)
{
    MessageLbl.Text = ex.ToString();
}

如果您不希望您的用户留在电子邮件页面上(假设您希望在他们发送电子邮件后将他们带到其他地方),您可以使用:

Response.AddHeader("REFRESH","3;URL=yourURL.aspx"); 
而不是

Response.redirect. 
您的标签将随着消息弹出,然后重定向将在几秒钟后发生