2009-11-20 17 views
5

Zastanawiam się, jak wyczyścić pola po odświeżenie strony w asp.net mvc? Podobnie jak teraz, gdy pojawiają się błędy sprawdzania poprawności, pola pozostają wypełnione tym, co użytkownik wprowadził. Jest to jednak w porządku, gdy nie występują żadne błędy sprawdzania poprawności, chcę wyczyścić wszystkie pola i wyświetlić komunikat.Jak wyczyścić pola po poście z powrotem w asp.net mvc?

W tej chwili mam sukces wyświetlania za pomocą ViewData, ale nie wiesz, jak uzyskać pola do wyczyszczenia.

Odpowiedz

0

Brzmi jak zadanie dla PRG (Post Redirect Get) pattern bo nie chcą użytkownicy, aby odświeżyć stronę i go złożyć ponownie.

Aby to zrobić, umieściłabym wiadomość lub flagę w TempData, aby można było sprawdzić, kiedy przekierowanie z powrotem do oryginalnego adresu URL spowoduje wyświetlenie wiadomości użytkownikowi.

2

Phil Haack powiedział:

Spróbuj zadzwonić

ModelState["value1"].Value = new 
ValueProviderResult(null, 
string.Empty, 
CultureInfo.InvariantCulture); 

przed powrotem widoku od wewnątrz swojej akcji kontrolera.

Co to oznacza, należy zachować wszystkie błędy związane z kluczem "wartość1", ale zastępuje wartość pustą wartością .

From this SO question

-1

Możesz przypisać model, nowe odwołanie, gdy umieścisz z powrotem model w widoku.
Coś takiego.

if (ModelState.IsValid) 
    { 
     //Do your stuff here. 

     yourModel = new Moodel(); 
     return View(yourModel); 

    } 

W tym scenariuszu wszystkie pola model będzie pusty i nic nie zostanie wyświetlona w formie.

+0

ten nie działa, ModelState.Clear() robi jednak –

8

Spróbuj tego:

if(ModelState.IsValid) 
{ 
    ModelState.Clear(); 
} 
return View(); 
+0

kupili także ustawić swoje błędy ModelState po tej linii :) – stuartdotnet

Powiązane problemy