2016-04-05 4 views
0

Ich habe ein Formular, das an eine Dankes-Seite übermittelt, aber das Problem ist, dass, wenn Sie den Zurück-Knopf drücken, die Felder noch gefüllt sind. Ich möchte, dass das Formular gelöscht wird, wenn der Benutzer den Submit-Button drückt und sich nicht sicher ist, ob ASP mvc korrekt ist. Ich habe versucht,Wie setze ich Werte nach dem Senden von Seiten auf asp mvc auf null?

model.Name = " "; 
model.Name = null; 

auch versucht

In Webformular würde ich

tun
txtName.Text = " "; 

In MVC

ModelState.Clear(); 

weder arbeitet

Hier ist, was ich habe auf der Formular zum Löschen das Feld

using (var smtp = new SmtpClient()) 
{ 
    var credential = new NetworkCredential 
    { 
     UserName = "[email protected]", 
     Password = "password" 
    }; 
    smtp.Credentials = credential; 
    smtp.Host = "smtpout.secureserver.net"; 
    smtp.Port = 3535; 
    smtp.EnableSsl = false; 
    await smtp.SendMailAsync(message); 
    await smtp.SendMailAsync(CustomerMsg); 
    model.Name = null; 
    model.Name = ""; 
    ModelState.Clear(); 
    return RedirectToAction("Sent"); 
} 
+0

MVC ist nicht das Problem hier; Wenn sie die Zurück-Schaltfläche drücken, ruft der Browser die vorherige Seite aus dem Cache ab und trifft Ihren Code überhaupt nicht. http://stackoverflow.com/questions/7224524/back-button-not-request-asp-net-mvc-get-method –

+0

obwohl die Frage ist verwirrend Ich bin mir ziemlich sicher, dass OP will Werte gelöscht auf submit nicht auf der Rückseite Taste – Maxwelll

+0

@PaulAbbott hat Recht, wenn man die Modellwerte im Controller ändert, nachdem ein Post nichts mehr tun soll ... Sie müssen AJAX verwenden, um die Daten zu posten. Wenn Sie einen Erfolg zurückbekommen, löschen Sie das Formular und leiten Sie es weiter Aktion "Gesendet" – JamieD77

Antwort

0

setzen nur Ihre Werte in ein leeres Objekt - obwohl mein Hintergrund in JavaScript ist Ich benutze das folgende Muster die ganze Zeit und nehmen Sie etwas wirklich ähnlich hier tun könnte.

function formSubmit(userInfo){ 
    var name = userInfo.name 
    var email = userInfo.email 
    userInfo = {} 
} 
0

Durch Drücken der Zurück-Taste wird die Seite aus dem Cache wiederhergestellt. Sie könnten versuchen, die folgende als Attribut zu Ihrer Aktion hinzufügen:

[OutputCache(NoStore = true, Duration = 1)] 

Dies wird die Seite zu zwingen, von dem Server abzurufen, aber je nachdem, was sonst auf Ihrer Seite auftritt es möglicherweise nicht für Ihre Bedürfnisse ideal.

Verwandte Themen