OnActionExecuting ValidationAttribute

Posted

技术标签:

【中文标题】OnActionExecuting ValidationAttribute【英文标题】: 【发布时间】:2021-09-09 09:08:50 【问题描述】:

我试图从动作方法中获取参数的值,而不是下划线的值,不应该有键吗?(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)

【问题讨论】:

是的,有一个 x.Key。不知道是否重要,但您使用的是哪个代码版本(.net 版本) 我目前正在使用 3.1 长期支持 【参考方案1】:

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

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获取更多信息

【讨论】:

我已经把代码改成了这个版本,我觉得它更好。非常感谢你 抱歉,我是***的新手 没问题,很高兴为您提供帮助。

以上是关于OnActionExecuting ValidationAttribute的主要内容,如果未能解决你的问题,请参考以下文章