zoukankan      html  css  js  c++  java
  • 在OnActionExecuted 获取请求参数的值(包含类类型)

    1.在OnActionExecuting里 获取请求参数的值 比较简单

    /// <summary>
            /// 获取首参数的值
            /// </summary>
            /// <param name="filterContext">The filter context.</param>
            /// <returns></returns>
            private object GetFirstParamObject(ActionExecutingContext filterContext)
            {
                var paramNames = filterContext.ActionDescriptor.GetParameters();
                if (paramNames.Length > 0)
                {
                    var parameterInfo = filterContext.ActionParameters[paramNames[0].ParameterName];
    
                    return parameterInfo;
                }
    
                return null;
            }

    2.在OnActionExecuted 获取请求参数的值(包含类类型)

            /// <summary>
            /// OnActionExecuted 获取请求参数的值
            /// </summary>
            /// <param name="filterContext">filterContext</param>
            public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                try
                {
                    //请求类各个字段的值
                    Dictionary<string, string> parmsObj = new Dictionary<string, string>();
    
                    foreach (var item in filterContext.ActionDescriptor.GetParameters())
                    {
                        var itemType = item.ParameterType;
                        if (itemType.IsClass && itemType.Name != "String")
                        {
                            PropertyInfo[] infos = itemType.GetProperties();
                            foreach (PropertyInfo info in infos)
                            {
                                if (info.CanRead)
                                {
                                    var propertyValue = filterContext.Controller.ValueProvider.GetValue(info.Name);// 暂不支持多层嵌套 后期优化?
                                    if (!parmsObj.ContainsKey(info.Name))
                                    {
                                        parmsObj.Add(info.Name, null == propertyValue ? "" : propertyValue.AttemptedValue);
                                    }
                                }
                            }
                        }
                        else
                        {
                            var parameterValue = filterContext.Controller.ValueProvider.GetValue(item.ParameterName);
                            if (!parmsObj.ContainsKey(item.ParameterName))
                            {
                                parmsObj.Add(item.ParameterName, null == parameterValue ? "" : parameterValue.AttemptedValue);
                            }
                        }
                    }
              }
  • 相关阅读:
    python ConfigParser、shutil、subprocess、ElementTree模块简解
    python中getattr函数 hasattr函数
    对简历的一点看法
    信息过载下的时间管理
    沉默的QQ
    想把余生变诗篇
    你的薪水偏高了吗?
    写给三十五岁的自己
    传统企业对互联网的痴心妄想
    小二,换大碗!
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/7495381.html
Copyright © 2011-2022 走看看