2009-10-16 8 views
7

Par défaut, une zone de texte rendue à l'aide de <% = Html.TextBox ("somefield")%> utilise la valeur des données de publication, par ex. Si vous avez des erreurs de validation sur votre page, la valeur est extraite des données publiées et utilisée pour l'attribut value. Maintenant, dans quelques cas je veux pouvoir effacer cette valeur, en d'autres termes je veux que la zone de texte soit vide, je ne veux pas que MVC obtienne la valeur des données affichées et l'utilise pour le attribut de valeur, comment puis-je faire? Comment puis-je effacer les données de publication?Comment faire pour effacer les données de publication pour une zone de texte dans une application ASP.NET MVC?

Merci

Répondre

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

Cela semble également fonctionner si vous souhaitez effacer toutes les valeurs: ModelState.Clear(); – jesperlind

+0

Un moyen de le faire sans effacer les erreurs de querystring et de validation? – stuartdotnet

+1

@StuartDobson Pour référence ultérieure, si vous supprimez la clé, définissez votre erreur de validation, cela ne devrait pas poser de problème. Au moins, cela a fonctionné pour moi. – ErocM

3

Supprimer la valeur de l'état de modèle, comme celui-ci:

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

Je trouve que je devais aussi bien enlever le ModelState et changer le modèle, comme si MVC tente ModelState premier , le modèle:

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

Et si vous ne voulez pas perdre votre état d'erreur pour le modèle, vous pouvez juste changez la valeur comme ceci:

ModelState.SetModelValue("Captcha", new ValueProviderResult(null, string.Empty, System.Globalization.CultureInfo.InvariantCulture)); 
model.key = ""; 
Questions connexes