public static object[] GetParameterValues(this ActionExecutingContext context) { var method = context.GetMethodInfo(); var parameters = method.GetParameters(); var parameterValues = new object[parameters.Length]; for (var i = 0; i < parameters.Length; i++) { parameterValues[i] = context.ActionArguments.GetOrDefault(parameters[i].Name); } return(parameterValues); }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { if (!context.ActionDescriptor.IsControllerAction()) { await next(); return; } var errors = validator.Value.Validate(context.GetMethodInfo(), context.GetParameterValues()) ?? new List <ValidationError>(); AddModelStateErrors(context, errors); if (errors.Any()) { throw new ValidationException(errors); } else { await next(); } }