asp.net-core - 传入错误的枚举值时,如何在 ASP.NET Core 中获取自定义 ModelState 错误消息?

标签 asp.net-core asp.net-core-webapi data-annotations

我正在将一个模型传递给一个 API 操作,该操作具有一个名为 eventType 的属性,它是一个可为 null 的自定义枚举。

如果我为 eventType 传递一个随机值,例如“h”,它无法序列化,这是正确的。

但是,我不希望公共(public)调用者看到我从 ModelState 得到的错误。它包括行号和位置(见下文)。

我尝试了很多选项,包括自定义数据注释,但都没有成功。

有谁知道如何定义更好的自定义消息?

"Error converting value \"h\" to type 'System.Nullable`1[Custom.EventTypes]'. Path 'eventType', line 1, position 80."

最佳答案

大多数情况下,第一个错误通常是最重要的错误,或者更确切地说是正确描述情况的错误。您可以使用这种方式来操作从第一个键获取第一条错误消息,或者如果您希望获取所有错误消息,则将其更改为您想要的任何内容。

public ActionResult GetMyMoney(MyModel myModel)
{
  string nss = ModelState.First().Key;
  ModelError[] ern = ModelState[nss].Errors.ToArray();
  string ndd = ern.First().ErrorMessage;
}

关于asp.net-core - 传入错误的枚举值时,如何在 ASP.NET Core 中获取自定义 ModelState 错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59147550/

相关文章:

asp.net-core - ASP.NET Core 3.1 Razor - 是否可以使用 Html.Raw 将字符串转换为超链接

不依赖 IIS 的 ASP.NET Web API 应用程序

c# - 如何在 .NET Core 6 Web API 中获取 [Authorize] 属性?

c# - 在从 C# Web api 生成的 swagger 中包含格式

c# - 使用 DataAnnotations 比较两个模型属性

c# - 在 ASP.NET Web API 中抑制 JsonMediaTypeFormatter 的 RequiredAttribute 验证

c# - 如何包装Web API响应(在.net核心中)以保持一致性?

odata - 如何在 UseMvc 中间件之外的 .NetCore 3.1 中注册 OData 扩展方法

使用继承的 RegularExpressionAttribute 进行 ASP.NET MVC 数据注释客户端验证

asp.net-core - asp.net Core View 组件已执行但未呈现标记