如何获取所有ModelState错误消息的列表?我发现了以下代码以获取所有键:
(Returning a list of keys with ModelState errors)var errorKeys = (from item in ModelState
where item.Value.Errors.Any()
select item.Key).ToList();
但是我该如何将错误消息作为 IList 或 IQueryable 获取?
我可以这样做:
foreach (var key in errorKeys)
{
string msg = ModelState[error].Errors[0].ErrorMessage;
errorList.Add(msg);
}
但这样做是手动的,肯定有一种使用LINQ的方法来实现。.ErrorMessage属性在链中是如此之深,以至于我不知道如何编写LINQ...
.Where(kvp => kvp.Value.Errors.Count > 0)
- SLaks.Where(kvp => kvp.Value.Errors.Any())
- Bjegovar errorList = modelState.Where(elem => elem.Value.Errors.Any()) .ToDictionary( kvp => kvp.Key, kvp => kvp.Value.Errors.Select(e => string.IsNullOrEmpty(e.ErrorMessage) ? e.Exception.Message : e.ErrorMessage).ToArray());
否则,您将无法获得异常消息。 - Silvos