2009-10-16 52 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 = ""; 
相關問題