【发布时间】:2019-01-27 08:27:07
【问题描述】:
我有以下 C# 扩展:
public static class ModelStateHelper
{
public static IEnumerable Errors(this ModelStateDictionary modelState)
{
if (!modelState.IsValid)
{
return modelState.ToDictionary(kvp => kvp.Key,
kvp => kvp.Value.Errors
.Select(e => e.ErrorMessage).ToArray())
.Where(m => m.Value.Any());
}
return null;
}
}
从控制器调用此扩展以生成 JSON,并生成以下 JSON:
{
"error": [
{
"key": "Password",
"value": [
"The Password field is required."
]
},
{
"key": "Username",
"value": [
"The Username field is required."
]
}
]
}
如何修改此扩展方法以仅返回错误消息列表?像这样:
{
"error": [
"The Password field is required.",
"The Username field is required."
]
}
【问题讨论】:
-
我正在使用 ModelState.IsValid 并返回一个 BadRequest(new { error = ModelState.Errors() } );在 ASP.Net Core 控制器中
-
return new { error = modelState.Value.Errors.Select(e => e.ErrorMessage).ToArray() };如果这不起作用,请尝试使用SelectMany而不是Select。
标签: c# linq asp.net-core modelstate