问题在于我有这篇文章:
public async Task<IActionResult> Post([FromBody] List<TabAccesos>? request)
但是当你在 Postman 中尝试没有
[]
的主体时,显示的错误是:
errors": {
"$": [
"The JSON value could not be converted to System.Collections.Generic.List`1[nombreproyecto.Models.TabAccesos]. Path: $ | LineNumber: 1 | BytePositionInLine: 5."
]
我需要更改该错误消息,但是当输入该帖子时不要进入捕获,在输入之前执行错误请求。怎么解决这个问题?
我们需要显示自定义的错误请求消息,例如 JSON 的方式不正确或类似的消息,因为客户端不想显示表或项目的名称。
System.Collections.Generic.List`1[nombreproyecto.Models.TabAccesos]
由于模型状态无效而发生错误。您可以如下配置全局模式状态错误
services.Configure<ApiBehaviorOptions>(options =>
{
options.InvalidModelStateResponseFactory = context =>
{
var errors = context.ModelState.Values
.SelectMany(v => v.Errors)
.Select(e => e.ErrorMessage)
.ToList();
// Customize the error message
var customErrorMessage = "Invalid model state. Please check your input.";
// Combine the custom error message with the original errors if needed
var finalErrorMessage = $"{customErrorMessage} Errors: {string.Join(", ", errors)}";
var result = new BadRequestObjectResult(new
{
message = finalErrorMessage
});
return result;
};
});