本文实例讲述了asp.net实现利用反射,泛型,静态方法快速获取表单值到Model的方法。分享给大家供大家参考,具体如下:
这是初级的,很简单,牛人可以不看了。不过还算实用。
在项目中经常需要处理表单,给model赋值,很烦人的一些重复代码。如下边的代码:
News news = new News(); news.Id = int.Parse(Request.Form["Id"]); news.Category = int.Parse(Request.Form["Category"]); news.Title = Request.Form["Title"]; news.CreateTime = DateTime.Parse(Request.Form["CreateTime"]);
经常还会出现写错情况,尤其是加班写这种无聊代码的时候...
使用反射,泛型,静态方法可以很容易解决这个问题。说的好像有点高深,其实超级简单。见代码。
public static class HenqPost<T> where T: new() { /// <summary> /// 为Model赋值 /// </summary> /// <typeparam name="T">Model</typeparam> /// <param name="t">model</param> /// <param name="form">Request</param> /// <returns></returns> public static int GetPost<T>(ref T t, NameValueCollection form) { int va=0; Type type = t.GetType();//获取类型 PropertyInfo[] pi=type.GetProperties();//获取属性集合 foreach( PropertyInfo p in pi ) { if (form[p.Name] != null) { try { p.SetValue(t, Convert.ChangeType(form[p.Name], p.PropertyType), null);//为属性赋值,并转换键值的类型为该属性的类型 va++;//记录赋值成功的属性数 } catch { } } } return va; } }
只所以用静态方法,主要是图方便,不用new。
以后所有的表单都可以很简单的处理了,两行代码搞定。
News news = new News(); HenqPost<News>.GetPost(ref news, Request.Form); //烦人的为实体类赋值就Over了。
不需要任何配置,约定是最好的配置。
约定:表单项的名称最好和实体类的属性名字对应(如果你要不一样,反射方法根据自己的规则改造下)。
为表单赋值,如果是webform的话也可以采取这种方式,可以自己写下,原理差不多。
希望本文所述对大家asp.net程序设计有所帮助。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月15日
2024年11月15日
- 欧倩怡.2001-Cindy(EP)【华星】【WAV+CUE】
- P1X3L《P1X3L》[FLAC/分轨][791.28MB]
- 茵达INDAHKUS《茵 the Blue》[320K/MP3][33.49MB]
- 茵达INDAHKUS《茵 the Blue》[FLAC/分轨][147.57MB]
- 老虎鱼AnneClarkwithUllavanDaelenJustinCiuche-Borderland-HiRes-Files24bit88.2kHz
- 江玲2004-百合盛开2CD[歌林][WAV+CUE]
- 孙露《怕什么孤单3CD》深圳音像[WAV分轨]
- s14全球总决赛目前是什么结果 s14全球总决赛赛程结果图一览
- s2TPA夺冠五人名单都有谁 tpa战队s2夺冠队员名单一览
- s13wbg战队成员都有谁 wbg战队s13成员名单一览
- 网友热议《幻兽帕鲁》停售、赔千万日元:那也赚麻了 不亏
- 这谁顶得住 《最终幻想7:重生》尤菲3D作品穿上终极芙蕾娜衣服
- 外媒称PS5pro违背承诺:《蜘蛛侠2》根本没法4K60帧
- 群星.2007-中文十大金曲30周年纪念专辑【RTHK】【WAV+CUE】
- 杨林.1989-留一点爱来爱自己【综一唱片】【WAV+CUE】