qudeqiangboy 2018-10-09 05:56 采纳率: 0%
浏览 1726

asp.net core 模型验证问题

asp.net core 问题,我使用的是asp.net core2.1版本。添加模型验证 ModelState.IsValid 出现问题,用swagger 或者是 postman 测试接口,故意输入错误的,即验证不通过的字段,发现还没有到达控制器中的方法就直接返回了 400 error 错误!这样根本没法进行判断给与合理的返回提示

  • 写回答

1条回答

  • 恶魔也温柔 2019-01-12 23:32
    关注

    在Controller上添加了ApiController特性就会启用默认的模型验证返回结果。ModelStateInvalidFilter特性是其内部处理放。可以通过ApiBehaviorOptions参数自行自定义。或者移除ApiController特性后自写特性统一验证模型。
    options.InvalidModelStateResponseFactory = actionContext =>
    {

        var errors = actionContext.ModelState
            .Where(e => e.Value.Errors.Count > 0)
            .Select(e => new Error
            {
            Name = e.Key,
            Message = e.Value.Errors.First().ErrorMessage
            }).ToArray();
            //自定义内容,可自己写返回结果方式
        return new BadRequestObjectResult(errors);
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大