天天看點

.net5 WebAPI 參數驗證 ModelValid

利用InvalidModelStateResponseFactory

官網推薦做法 覆寫ModelState管理的預設行為,隻有在資料驗證失敗時才會執行

services.Configure<ApiBehaviorOptions>(options =>
{
  options.InvalidModelStateResponseFactory = (context) =>
  {
      //參數驗證
            services.Configure<ApiBehaviorOptions>(options =>
            {
                //隻有在資料驗證失敗時才會執行
                options.InvalidModelStateResponseFactory = (context) =>
                {
                    var errors = context.ModelState.Select(f => new KeyValuePair<string, IEnumerable<string>>(f.Key, f.Value.Errors.Select(e => e.ErrorMessage)));

                    return new JsonResult(new APIResponseModel<object> { Code = ResponseEnum.FAIL.GetHashCode(), Message = JsonConvert.SerializeObject(errors), Data = errors });
                };
            });  

  };
});
           

自定義驗證

public class NoSpaceAttribute : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            if (value is string str)
            {
                return !str.Contains(' ');
            }
            return false;
        }
    }
           

參考

留待後查,同時友善他人

聯系我:[email protected]