利用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;
}
}
參考
留待後查,同時友善他人