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

我正在研究将由客户使用的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响应上执行字符串替换,但我确实希望有一个更好的解决方案。


有任何想法吗?


红颜莎娜
浏览 163回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP