2011-10-18 95 views
5

如果ModelState顯示字段無效,我想清除模型中字段的提交值。如果ModelState表示該字段無效,則清除字段值

這是迄今爲止我已經得到的地方,但不能在模型中綁定關鍵的價值。有什麼建議麼?

if (!ModelState.IsValid) 
{ 
    foreach (string key in ModelState.Keys) 
    { 
    if (!ModelState.IsValidField(key)) 
    { 
     // This field is not valid so set to empty string in model 
     // Something like.... 
     model[key] = ""; 
    } 
    } 
} 

回答

11

您應與接收模式返回相同的觀點,改變你的代碼如下:

if (!this.ModelState.IsValidField(key)) 
{ 
    var emptyValue = new ValueProviderResult(
     string.Empty, 
     string.Empty, 
     CultureInfo.CurrentCulture); 

    this.ModelState.SetModelValue(
     key, 
     emptyValue); 
} 
+0

我知道這是一個老問題。但作爲這個問題的擴展 - >如果我不想讓我的模型保存無效值,我們如何訪問具有更新值的模型。 – user979737

相關問題