2009-10-16 49 views
7

默认情况下,使用<%= Html.TextBox(“somefield”)%>呈现的文本框使用发布数据中的值,例如,如果您的网页上存在验证错误,则会从发布的数据中检索该值并将其用于值属性。如何清除ASP.NET MVC应用程序中文本框的发布数据?

现在,在一些情况下,我希望能够清除该值,换句话说,我希望文本框为空白,我不希望MVC从发布的数据中获取值并将其用于价值属性,我该怎么办?我如何清除发布数据?

感谢

回答

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

如果你想清除所有的值,这也似乎工作:ModelState.Clear(); – jesperlind 2009-12-29 21:35:04

+0

有没有清除查询字符串和验证错误的方法? – stuartdotnet 2013-11-12 00:04:03

+1

@StuartDobson为了将来的参考,如果您删除密钥,然后设置验证错误,这应该不成问题。至少,它对我有用。 – ErocM 2014-01-08 21:10:08

3

删除从模型状态的值,就像这样:

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

我发现我不得不都去掉的ModelState和修改模型,如果MVC试图ModelState中作为第一,那么型号:

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

如果你不想失去模型的错误状态,你可以改变这样的值:

ModelState.SetModelValue("Captcha", new ValueProviderResult(null, string.Empty, System.Globalization.CultureInfo.InvariantCulture)); 
model.key = ""; 
相关问题