Как опубликовать сообщение для подтверждения отправленного сообщения после перенаправления страницы (C#/ASP.Net)

Привет! Я только что настроил метод на своем веб-сайте для отправки электронного письма со страницы "Контакты". Я хотел очистить форму asp.net от всех подробностей, когда они отправили электронное письмо, поэтому я использовал ответ.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();
    }
}

Спасибо заранее

2 ответа

Решение

Response.Redirect это твоя проблема. Вы эффективно обновляете страницу и любой код после этого не имеет значения. Почему бы просто не очистить форму с помощью 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. 

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

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