我有以下代码:
protected IEnumerable<string> GetErrorsFromModelState() {
var errors = ModelState
.SelectMany(x => x.Value.Errors.Select(error => error.ErrorMessage)
.Union(x.Value.Errors.Select(error => error.Exception.Message)));
return errors;
}
它可以工作但是当有一个ErrorMessage的条目为“”时,它会将它添加到字符串列表中。有没有办法可以让它只选择ErrorMessages,如果它们不是“”?
答案 0 :(得分:0)
尝试检查空字符串,如果为空或空,则丢弃选择和投影。
protected IEnumerable<string> GetErrorsFromModelState() {
var errors = ModelState
.SelectMany(x => x.Value.Errors.Where(error=>!String.IsNullOrEmpty(error.ErrorMessage)).Select(error => error.ErrorMessage)
.Union(x.Value.Errors.Where(error=>!String.IsNullOrEmpty(error.ErrorMessage)).Select(error => error.Exception.Message)));
return errors;
}