2012-01-20 1 views
0

Привет, Я только что настроил метод на своем веб-сайте, чтобы отправить электронное письмо со страницы «Связаться с нами», я хотел очистите форму asp.net всех деталей электронной почты, как только они отправили электронное письмо, поэтому я использовал response.redirect для обновления страницы как таковой. Я хочу показать сообщение или всплывающее окно, чтобы показать, что сообщение было отправлено, но поскольку страница обновляется ярлык, который я пытаюсь написать, чтобы он никогда не вызывался. Есть ли способ обойти это или способ очистить форму без перенаправления? Вот код, я работаю с:Как отправить сообщение, чтобы подтвердить отправленное сообщение после перенаправления страницы (C#/ASP.Net)

protected void SubmitBtn_Click(object sender,EventArgs e) 
{ 
    MailMessage mailObj = new MailMessage(
     EmailTxt.Text, "[email protected]", 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(); 
    } 
} 

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

ответ

1

The 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(); 
} 
+0

Да, это именно то, что я пытался сделать благодаря большому – user1161118

1

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

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

Вместо того

Response.redirect. 

ярлык появится с сообщением, а затем перенаправлять будет несколько Secon ds позже.