永远不会点击ActionFilter来检查ModelState.IsValid

时间:2019-07-18 07:46:00

标签: c# asp.net-core .net-core asp.net-core-webapi

我写了一个ActionFilter来检查我的模型状态是否有效(以便我可以记录问题):

public class ValidationFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    { ... }
}

我的断点从未被击中,我在Postman中得到了输出:

  

{       “错误”:{
          “ RequiredText”:[
              “测试-必须输入RequiredText”
          ]
      },
      “ title”:“发生一个或多个验证错误。”,
      “状态”:400,
      “ traceId”:“ 0HLOBA7E4R7SL:00000002”
  }

我假设.NET Core预先进行了验证。
有没有办法关闭此功能,以便使用我的属性?

1 个答案:

答案 0 :(得分:0)

我认为您必须通过将SuppressModelStateInvalidFilter选项设置为true来禁用默认行为。您可以在ConfigureServices方法中将此选项设置为true。喜欢,

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<ApiBehaviorOptions>(options =>
    {
        options.SuppressModelStateInvalidFilter = true;
    });
}