gpt4 book ai didi

c# - ASP.NET MVC 如何将 ModelState 错误转换为 json

转载 作者:IT王子 更新时间:2023-10-29 03:33:38 25 4
gpt4 key购买 nike

如何获得所有 ModelState 错误消息的列表?我发现这段代码可以获取所有 key :( 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...

最佳答案

你可以把任何东西放在select里面子句:

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

编辑:您可以通过添加 from 将多个错误提取到单独的列表项中子句,像这样:

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

或者:

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

第 2 编辑:您正在寻找 Dictionary<string, string[]> :

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

关于c# - ASP.NET MVC 如何将 ModelState 错误转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2845852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com