2011-10-18 8 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

関連する問題