2009-10-16 9 views
7

Domyślnie pole tekstowe renderowane przy użyciu <% = Html.TextBox ("somefield")%> używa wartości z danych post, np. jeśli na stronie występują błędy sprawdzania poprawności, wartość jest pobierana z opublikowanych danych i używana dla atrybutu value.Jak wyczyścić dane posta dla pola tekstowego w aplikacji ASP.NET MVC?

Teraz, w kilku przypadkach, chcę móc wyczyścić tę wartość, innymi słowy chcę, aby pole tekstowe było puste, nie chcę, aby MVC pobierał wartość z opublikowanych danych i używał go do atrybut wartości, jak mogę to zrobić? Jak mogę wyczyścić dane posta?

Dzięki

Odpowiedz

12
ModelState.Remove("key"); 
+4

Wydaje się to również działać, jeśli chcesz usunąć wszystkie wartości: ModelState.Clear(); – jesperlind

+0

Jakikolwiek sposób to zrobić bez usuwania kwerendy i błędów sprawdzania poprawności? – stuartdotnet

+1

@StuartDobson Jeśli w przyszłości usuniesz klucz, ustaw błąd sprawdzania poprawności, który nie powinien być problemem. Przynajmniej to działało dla mnie. – ErocM

3

usuwając wartość od stanu modelu, podobnie jak to:

ViewData.ModelState.Remove("somefield"); 
2

znalazłem musiałem zarówno usunąć ModelState i zmienić model, jakby MVC próbuje ModelState pierwszy , następnie model:

ModelState.Remove("key"); 
model.key = ""; 

A jeśli nie chcesz stracić swojego stanu błędu dla modelu, możesz po prostu zmień wartość w następujący sposób:

ModelState.SetModelValue("Captcha", new ValueProviderResult(null, string.Empty, System.Globalization.CultureInfo.InvariantCulture)); 
model.key = ""; 
Powiązane problemy