如何在ASP.NET MVC应用程序中清除文本框的提交数据?

7

默认情况下,使用<%= Html.TextBox("somefield")%>渲染的文本框将使用来自提交数据的值,例如如果您的页面存在验证错误,则会从提交的数据中检索该值并用于value属性。

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

谢谢

3个回答

12
ModelState.Remove("key");

4
如果您想清除所有值,似乎可以使用以下代码:ModelState.Clear(); - jesperlind
有没有不清除查询字符串和验证错误的方法来实现它? - Stuart Dobson
1
@StuartDobson 作为以后的参考,如果你删除了密钥然后设置验证错误,那应该不会有问题。至少对我来说是这样的。 - ErocM

3

我发现我既需要移除ModelState,又需要更改模型,因为MVC会首先尝试使用ModelState,然后才是模型:

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

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

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

3

像这样从模型状态中删除值:

ViewData.ModelState.Remove("somefield");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接