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的主要内容,如果未能解决你的问题,请参考以下文章

如何在OnActionExecuting中获取控制器和操作名称?

OnActionExecuting ValidationAttribute

c_cpp validat_bst.cpp

net core体系-web应用程序-4asp.net core2.0 项目实战-13基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级

使用饿了么ui表单验证报错: [Element Warn][Form]model is required for validat

ActionFilterAttribute