SORU
16 Mayıs 2010, Pazar


ASP.NET ModelState hataları json dönüştürmek için Nasıl MVC

Nasıl ModelState hata iletilerinin bir listesini alabilirim? Bu kod, tüm anahtarları almak için buldum: ( http://stackoverflow.com/questions/888521/returning-a-list-of-keys-with-modelstate-errors)

var errorKeys = (from item in ModelState
        where item.Value.Errors.Any() 
        select item.Key).ToList();

Ama nasıl IList veya IQueryable olarak hata mesajları olsun ki?

.

foreach (var key in errorKeys)
{
    string msg = ModelState[error].Errors[0].ErrorMessage;
    errorList.Add(msg);
}

Ama el ile - kesinlikle bunu yapmak için bir yol var gidiyor ETMENİZ kullanarak mı bu? .ErrorMessage özelliği kontrol ETMENİZ nasıl yazacağımı bilmiyorum o kadar çok zincir aşağı

CEVAP
16 Mayıs 2010, Pazar


Koyabilirsinizhiçbir şeyselect tümce içinde istediğiniz:

var errorList = (from item in ModelState
        where item.Value.Errors.Any() 
        select item.Value.Errors[0].ErrorMessage).ToList();

EDİT: Bu gibi: from bir madde ekleyerek ayrı bir liste öğeleri içine birden fazla hata ayıklamak

var errorList = (from item in ModelState.Values
        from error in item.Errors
        select error.ErrorMessage).ToList();

Ya da:

var errorList = ModelState.Values.SelectMany(m => m.Errors)
                                 .Select(e => e.ErrorMessage)
                                 .ToList();

2ndEDİT: Dictionary<string, string[]> arıyoruz:

var errorList = ModelState.ToDictionary(
    kvp => kvp.Key,
    kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray()
);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005