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

관련 문제