国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net實現利用反射,泛型,靜態方法快速獲取表單值到Model的方法

2024-07-10 13:29:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了asp.net實現利用反射,泛型,靜態方法快速獲取表單值到Model的方法,結合實例形式分析了asp.net中反射,泛型,靜態方法給model賦值的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了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程序設計有所幫助。



注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常州市| 大连市| 叶城县| 安庆市| 黑山县| 刚察县| 阿坝| 柘城县| 博客| 玉环县| 宜黄县| 泰顺县| 鄂托克前旗| 若尔盖县| 长宁县| 怀宁县| 赤壁市| 正镶白旗| 玛多县| 上蔡县| 伊吾县| 道孚县| 延庆县| 汤原县| 澄迈县| 韩城市| 武宣县| 龙川县| 滨州市| 平原县| 宁武县| 维西| 琼结县| 黑河市| 台东县| 汝城县| 平阴县| 新郑市| 马尔康县| 轮台县| 综艺|