将form表单的值反射到Model中
2015-07-23 12:49
183 查看
/// <summary> /// 将form表单的值反射到Model中 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="form"></param> /// <returns></returns> protected T FormToModel<T>(NameValueCollection form) { Type t = typeof(T); PropertyInfo[] properties = t.GetProperties(); T obj = Activator.CreateInstance<T>(); //遍历T里面的字段获得属性 foreach (PropertyInfo pro in properties) { Type convertsionType = pro.PropertyType; //获取T的每个字段转换为大写 string pi = pro.Name.ToUpper(); //遍历Form表单里面的控件得到控件的Name foreach (var item in form.Keys) { //获取Form表单的控件Name转为大写 string name = item.ToString().ToUpper(); //得到表单元素的Value值 var data = form[name]; //对比Form中的Name与Model中的字段名,若一样就写入,程序跳出内循环 if (pi == name) { //为T的字段赋值,若数据类型不一致,则进行转换 pro.SetValue(obj, HackType(data, convertsionType),null); break; } } } return obj; }
相关文章推荐
- WebService工作原理及传输安全问题
- ListView中convertView和ViewHolder的工作原理
- Leet Code -- Unique BST
- codeforge分享
- Golang-简洁的并发
- Mysql大量插入随机数据方法--存储过程
- Android中icon和logo的区别
- Oracle删除重复记录只保留一条数据的几种方法
- ios北京总部感想
- Android中icon和logo的区别
- iOS 各种动画效果集合
- 幼儿绘本-英文版
- 谷歌员工晒工资,之后大家就开始不淡定了……
- android“设置”里的版本号
- 如何用XFire在Web应用中搭建WebService
- String与StringBuffer简解
- Android调用系统日历插入日程
- 一行代码从表中选取N行到另一个表
- C#截取中英文混合字符串分行显示
- UBuntu下 创建程序图标