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);
                            }
                        }
                    }
              }
  • 相关阅读:
    Macbook键盘的使用基础技巧
    JSTL详解
    为了理想,因为爱情-开课第一天有感(鸡汤向)
    HK游记 Day2迪斯尼(下)
    MP20 MBO issue summary
    音频测量加权
    有没有降噪
    信源编码信源译码和信道编码和译码和加密和解密数字调制和解调和同步
    gcc
    数据挖掘|统计的艺术
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/7495381.html
Copyright © 2011-2022 走看看