OnActionExecuting ValidationAttribute

OnActionExecuting ValidationAttribute

我正在尝试从操作方法中获取参数值,而不是带下划线的值,不应该有键吗?(x.key)以便获取参数名称?

var param = context.ActionArguments
  .SingleOrDefault(x => x.Value.ToString().Contains("DTO")).Value;

[HttpPost]
[ServiceFilter(typeof(ValidationFilterAttribute))]
public async Task<IActionResult> CreateCompany([FromBody] CompanyForCreationDTO company)

请试试这个方法,它会带上一个控制器传过来的参数值。

public void OnActionExecuting(ActionExecutingContext context)
        {
            var descriptor = context.ActionDescriptor as ControllerActionDescriptor;

            if (descriptor != null)
            {
                var parameters = descriptor.MethodInfo.GetParameters();

                foreach (var parameter in parameters)
                {
                    var argument = context.ActionArguments[parameter.Name];
                }
            }
            
        }

输出:

您可以在 official document here

中获取更多信息