默认情况下,使用<%= Html.TextBox("somefield")%>渲染的文本框将使用来自提交数据的值,例如如果您的页面存在验证错误,则会从提交的数据中检索该值并用于value属性。
现在,在一些情况下,我希望能够清除该值,换句话说,我希望文本框为空,我不想让MVC从提交的数据中获取该值并将其用于value属性,我该怎么做?如何清除提交的数据?
谢谢
默认情况下,使用<%= Html.TextBox("somefield")%>渲染的文本框将使用来自提交数据的值,例如如果您的页面存在验证错误,则会从提交的数据中检索该值并用于value属性。
现在,在一些情况下,我希望能够清除该值,换句话说,我希望文本框为空,我不想让MVC从提交的数据中获取该值并将其用于value属性,我该怎么做?如何清除提交的数据?
谢谢
ModelState.Remove("key");
我发现我既需要移除ModelState,又需要更改模型,因为MVC会首先尝试使用ModelState,然后才是模型:
ModelState.Remove("key");
model.key = "";
如果您不想失去模型的错误状态,可以像这样更改值:
ModelState.SetModelValue("Captcha", new ValueProviderResult(null, string.Empty, System.Globalization.CultureInfo.InvariantCulture));
model.key = "";
像这样从模型状态中删除值:
ViewData.ModelState.Remove("somefield");