2011-10-18 32 views
5

Tôi muốn xóa giá trị đã gửi của trường trong mô hình nếu số ModelState cho thấy trường không hợp lệ.Giá trị trường rõ ràng nếu ModelState cho biết trường không hợp lệ

Đây là nơi tôi đã có cho đến nay nhưng không thể kết nối chìa khóa để có giá trị trong mô hình. Bất kỳ đề xuất?

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] = ""; 
    } 
    } 
} 

Trả lời

11

Bạn nên quay trở lại quan điểm tương tự với mô hình tiếp nhận và cũng thay đổi mã của bạn như sau:

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

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

Tôi biết đây là một câu hỏi cũ. Nhưng như là một phần mở rộng cho câu hỏi này -> Làm cách nào để truy cập vào mô hình với các giá trị được cập nhật, nếu tôi không muốn mô hình của mình giữ các giá trị không hợp lệ. – user979737

Các vấn đề liên quan