【发布时间】:2022-01-06 11:11:04
【问题描述】:
我有一个 .net 核心应用程序。一些端点有一些模型,模型中的一些属性有 int 类型。如果用户传递字符串而不是 int 我有这样的错误“无法将字符串转换为整数:asd。路径'ClientId',第 3 行,位置 22。” 如何自定义错误信息?
【问题讨论】:
标签: asp.net-core error-handling model-binding
我有一个 .net 核心应用程序。一些端点有一些模型,模型中的一些属性有 int 类型。如果用户传递字符串而不是 int 我有这样的错误“无法将字符串转换为整数:asd。路径'ClientId',第 3 行,位置 22。” 如何自定义错误信息?
【问题讨论】:
标签: asp.net-core error-handling model-binding
根据你的描述,我建议你可以尝试使用下面的代码来自定义错误信息。
您可以将这些代码添加到 ConfigureServices 方法中。
services.Configure<ApiBehaviorOptions>(o =>
{
o.InvalidModelStateResponseFactory = actionContext =>
new BadRequestObjectResult("test");
});
结果:
更新:
您可以根据自己的需要修改错误结果。
services.Configure<ApiBehaviorOptions>(o =>
{
o.InvalidModelStateResponseFactory = actionContext
=> {
// Modify the codes according to the actionContext.ModelState's value
return new BadRequestObjectResult(actionContext.ModelState);
};
});
【讨论】:
actionContext.ModelState可以得到模型验证结果。