再ASP.NET中快速的把Request.Form 转换成一个model

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013542549/article/details/79237782
        public static T TableRowToModel<T>(T objmodel, System.Collections.Specialized.NameValueCollection form)
        {
            foreach (PropertyInfo info in typeof(T).GetProperties())
            {
                string name = info.Name;

                if (form.GetValues(name) != null)
                {
                    //如果不是泛型
                    if (!info.PropertyType.IsGenericType)
                    {
                        //如果是空则设置空,非空则设置值。
                        info.SetValue(objmodel, string.IsNullOrEmpty(form.GetValues(name).ToString()) ? null : Convert.ChangeType(form.GetValues(name), info.PropertyType), null);
                    }
                    //如果是泛型,则找他的基础类型
                    else if (info.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
                    {
                        info.SetValue(objmodel, string.IsNullOrEmpty(form.GetValues(name).ToString()) ? null : Convert.ChangeType(form.GetValues(name), Nullable.GetUnderlyingType(info.PropertyType)), null);
                    }
                }
            }
            return objmodel;
        }



阅读更多
换一批

没有更多推荐了,返回首页