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

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

Большое спасибо заранее

Ответы [ 2 ]

1 голос
/ 29 августа 2012

Если вы не хотите, чтобы ваш пользователь оставался на странице электронной почты (при условии, что вы хотите забрать его куда-нибудь после того, как он отправит свою электронную почту), вы можете использовать:

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

вместо

Response.redirect. 

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

1 голос
/ 21 января 2012

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();
}
...