2011-06-08 22 views
5

मैं इस है:ASP.NET MVC 3: मान्यता प्राप्त संदेश सूची

public class Customer 
{ 
    [DisplayName("Lastname"), StringLength(50)] 
    [Required(ErrorMessage="My Error Message")] 
    [NotEmpty()] 
    public override string LastName { get; set; } 

    [DisplayName("Firstname"), StringLength(50)] 
    [Required(ErrorMessage="My Error Message 2")] 
    [NotEmpty()] 
    public override string FirstName{ get; set; } 
} 

नियंत्रक में, मैं यह कर:

if (!TryValidateModel(myCustomer)) 
{ 
    //HERE 
    .... 
} 

कहाँ "यहाँ", मैं चाहता है मिल सभी त्रुटि संदेश।

कुछ नमूना मामलों:

  1. तो "अंतिम नाम" याद आ रही है मैं " मेरे त्रुटि संदेश"
  2. दोनों ग़ायब रहे हैं, तो प्राप्त करना चाहते हैं, मैं एक सूची प्राप्त करना चाहते हैं (या अन्य) के साथ मूल्यों "मेरे त्रुटि संदेश" और "मेरे त्रुटि संदेश 2"

किसी भी विचार?

धन्यवाद,

उत्तर

13

आप इस तरह अपने-अपने क्षेत्र और संदेश के साथ सभी त्रुटियों की एक सूची प्राप्त कर सकते हैं:

var errors = ModelState 
    .Where(x => x.Value.Errors.Count > 0) 
    .Select(x => new { x.Key, x.Value.Errors }) 
    .ToArray(); 
+0

नहीं नहीं मैं सभी संदेशों को नहीं करना चाहती, मैं सिर्फ क्षेत्र के लिए संदेश चाहते हैं त्रुटि में –

+0

@ क्रिस-मैं, यही वह है जिसे आप प्राप्त करेंगे => कहां क्लॉज देखें। यह केवल उन फ़ील्ड को ले जाएगा जिनमें त्रुटि है। –

+0

एक बार फिर धन्यवाद :) –

संबंधित मुद्दे