【问题标题】:OnActionExecuting ValidationAttributeOnActionExecuting 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 长期支持

标签: c# .net asp.net-core webapi


【解决方案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获取更多信息

【讨论】:

  • 我已经把代码改成了这个版本,我觉得它更好。非常感谢你
  • 抱歉,我是stackoverflow的新手
  • 没问题,很高兴为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
相关资源
最近更新 更多