这一小节的代码不是很懂。老师能详细说一下吗
来源:7-9 【应用】输出状态码 422

qq_艾诺_
2020-08-09
.ConfigureApiBehaviorOptions(setupAction =>
{
setupAction.InvalidModelStateResponseFactory = context =>
{
ValidationProblemDetails details = new ValidationProblemDetails(context.ModelState)
{
Type = "",
Title = "数据验证失败",
Status = StatusCodes.Status422UnprocessableEntity,
Detail = "请看详细说明",
Instance = context.HttpContext.Request.Path
};
details.Extensions.Add("traceId", context.HttpContext.TraceIdentifier);
return new UnprocessableEntityObjectResult(details){ ContentTypes = { "application/json" } };
};
});
3回答
-
阿莱克斯刘
2020-08-12
前两天,慕课网后台似乎出问题了,一直没办法回答问题。所以回复耽搁了好几天,不好意思。
在asp.net中,http 400级别的错误默认的格式如下:
{
“错误”:{
“设备编号”: [
“ DeviceId字段为必填。”
]
},
“ title”:“发生一个或多个验证错误。”,
“状态”:400,
“ traceId”:“ 80000049-0001-fc00-b63f-84710c7967bb”
}但是,问题是在实际工作中也许需要修改默认的400级别的格式,这时候就需要通过修改ConfigureApiBehaviorOptions来实现自定义的错误输出格式了。比如说,原本数据验证错误默认的输出是400,但是课程为了取得更准确的错误代码,把数据验证错误(也就是context.ModelState
失败的情况)修改成为输出422的格式。关于你的问题,因为不是特别清楚你不懂的是哪一段代码,所以我也只是讲了一个大概。希望能对你有帮助。这里有一篇文章讲说不定可能帮你:https://www.cnblogs.com/tenghao510/p/11927930.html
如果可以把问题再精确一下,我可以给出更详细的答案。
00 -
阿莱克斯刘
2020-08-11
在asp.net中,http 400级别的错误默认的格式如下:
{
“错误”:{
“设备编号”: [
“ DeviceId字段为必填。”
]
},
“ title”:“发生一个或多个验证错误。”,
“状态”:400,
“ traceId”:“ 80000049-0001-fc00-b63f-84710c7967bb”
}但是,问题是在实际工作中也许需要修改默认的400级别的格式,这时候就需要通过修改ConfigureApiBehaviorOptions来实现自定义的错误输出格式了。比如说,原本数据验证错误默认的输出是400,但是课程为了取得更准确的错误代码,把数据验证错误(也就是context.ModelState
失败的情况)修改成为输出422的格式。关于你的问题,因为不是特别清楚你不懂的是哪一段代码,所以我也只是讲了一个大概。希望能对你有帮助。这里有一篇文章讲说不定可能帮你:https://www.cnblogs.com/tenghao510/p/11927930.html
如果可以把问题再精确一下,我可以给出更详细的答案。
00 -
阿莱克斯刘
2020-08-11
在asp.net中,http 400级别的错误默认的格式如下:
{
“错误”:{
“设备编号”: [
“ DeviceId字段为必填。”
]
},
“ title”:“发生一个或多个验证错误。”,
“状态”:400,
“ traceId”:“ 80000049-0001-fc00-b63f-84710c7967bb”
}但是,问题是在实际工作中也许需要修改默认的400级别的格式,这时候就需要通过修改ConfigureApiBehaviorOptions来实现自定义的错误输出格式了。比如说,原本数据验证错误默认的输出是400,但是课程为了取得更准确的错误代码,把数据验证错误(也就是context.ModelState
失败的情况)修改成为输出422的格式。关于你的问题,因为不是特别清楚你不懂的是哪一段代码,所以我也只是讲了一个大概。希望能对你有帮助。这里有一篇文章讲说不定可能帮你:https://www.cnblogs.com/tenghao510/p/11927930.html
如果可以把问题再精确一下,我可以给出更详细的答案。
00
相似问题