为了账号安全,请及时绑定邮箱和手机立即绑定

如何在ASP.NET Core 2.0中的错误消息上删除ModelState前缀?

如何在ASP.NET Core 2.0中的错误消息上删除ModelState前缀?

C#
红颜莎娜 2021-05-18 18:57:09
我正在研究将由客户使用的ASP.NET Core 2.0 API。我遇到的问题之一是,当我使用ModelState进行请求有效负载的输入验证时,使用者看到的结果错误消息在响应JSON中具有[objectPrefix] .PropertyName。我们的API文档列出了属性名称,但没有列出对象类,因此,当使用者编写将JSON响应反序列化到其本地对象模型中的代码时,前缀就产生了问题。我可以在Startup.cs ConfigureServices方法中为Service.AddMvc或类似的东西设置任何选项来禁用此前缀吗?我在我的API,.NET Core 2.0.4和VS2016 v15.5.7中使用Microsoft.AspNetCore.All(2.0.7)依赖关系(如果有的话)。我正在使用System.ComponentModel.DataAnnotations库中的Data Annotations,并装饰我的创建DTO类属性,如下所示;    [Required]    [MaxLength(14)]    public string AccountNumber    {        get => _accountNumber;        set => _accountNumber = !string.IsNullOrWhiteSpace(value) ? value.Trim() : string.Empty;    }当使用者在请求有效负载中未提供帐号时,返回的错误如下所示;{    "[AccountDto].AccountNumber": [        "The AccountNumber field is required."    ]}我想做的是消除[AccountDto]。前缀,以便错误JSON如下所示;{    "AccountNumber": [        "The AccountNumber field is required."    ]}我找到了这篇SO帖子,但似乎引用了较旧的ASP.NET。目前,我正在让我的客户端在json响应上执行字符串替换,但我确实希望有一个更好的解决方案。有任何想法吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信