【问题标题】:.net core model binding type conversion errors.net core 模型绑定类型转换错误
【发布时间】:2022-01-06 11:11:04
【问题描述】:

我有一个 .net 核心应用程序。一些端点有一些模型,模型中的一些属性有 int 类型。如果用户传递字符串而不是 int 我有这样的错误“无法将字符串转换为整数:asd。路径'ClientId',第 3 行,位置 22。” 如何自定义错误信息?

【问题讨论】:

    标签: asp.net-core error-handling model-binding


    【解决方案1】:

    根据你的描述,我建议你可以尝试使用下面的代码来自定义错误信息。

    您可以将这些代码添加到 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可以得到模型验证结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多