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

首頁 > 編程 > .NET > 正文

ASP.NET中實現Form表單字段值自動填充到操作模型中_.Net教程

2024-07-10 12:53:03
字體:
來源:轉載
供稿:網友

推薦:ASP.NET中的Cache使用介紹
這篇文章主要介紹了ASP.NET中的Cache使用介紹,本文講解了Cache 是怎么工作的、Cache 怎么創建及怎么銷毀、什么時候用cache、cache 調用注意事項等內容,需要的朋友可以參考下 Cache 即高速緩存 ,我想非常多人對他的第一印象一定像我相同,感覺他一定能提高系統得性能和

   這篇文章主要介紹了ASP.NET中實現Form表單字段值自動填充到操作模型中,本文模仿MVC模式中的自動映射表單了模型,使用泛型和反射實現,需要的朋友可以參考下

  我們知道ASP.NET MVC有個強大的地方就是Form表單提交到action的時候,可以直接將Form的參數直接裝配到action的參數實體對象中

  比如

   代碼如下:

  action方法 Register(UserModel userModel)

  {

  .............................

  }

  在提交表單的時候,會自動講表單里面的字段封裝到對應的UserModel字段里面

  那么 WebForm里面可不可以也紫將呢?

  因為每次都要去獲得數據,優秀的程序員應該要學會代碼封裝,代碼復用,重復的工作不要做

  我們其實可以利用反射來實例化對象的(自動裝配)

  好了廢話不多....

  pageload里面很簡單了

   代碼如下:

  protected void Page_Load(object sender, EventArgs e)

  {

  if (!IsPost())

  {

  InitPage();//第一次訪問呈現頁面

  }

  else

  {

  UserModel userModel = AssembleModel(base.valueCollection);

  }

  }

  關鍵就是基類里面的AssembleModel 方法了

  基類里面

  我們首先獲取到上下文的參數 IT404

   代碼如下:

  protected NameValueCollection valueCollection = HttpContext.Current.Request.Params;

  基類很簡單,就是將上下文的提交的參數存放到valueCollection

  然后再看AssembleModel方法了,這是一個泛型方法

  代碼如下:

  ///

 

  /// 反射獲取類的屬性

  ///

 

  ///

  ///

  protected PropertyInfo[] GetPropertyInfoArray(Type type)

  {

  PropertyInfo[] props = null;

  try

  {

  object obj = Activator.CreateInstance(type);

  props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);

  }

  catch (Exception ex)

  {

  }

  return props;

  }

  ///

 

  /// 根據NameValueCollection 自動裝配

  ///

 

  ///

  ///

  ///

  protected T AssembleModel(NameValueCollection valueCollection)

  {

  PropertyInfo[] propertyInfoList = GetPropertyInfoArray(typeof(T));

  object obj = Activator.CreateInstance(typeof(T), null);//創建指定類型實例

  foreach (string key in valueCollection.Keys)//所有上下文的值

  {

  foreach (var PropertyInfo in propertyInfoList)//所有實體屬性

  {

  if (key.ToLower() == PropertyInfo.Name.ToLower())

  {

  PropertyInfo.SetValue(obj, valueCollection[key], null);//給對象賦值

  }

  }

  }

  return (T)obj;

  }

  很簡單,就是遍歷參數,然后用反射遍歷出實體類的共有屬性,然后根據名字name來匹配和賦值

  所以以后我們只需要一句代碼 就能自動裝配上從客戶端存過來的值了

  代碼如下:

  UserModel userModel = AssembleModel(base.valueCollection);

分享:ASP.NET OutputCache詳解
這篇文章主要介紹了ASP.NET OutputCache詳解,本文詳細講解了OutputCache的語法、OutputCache的參數、OutputCache使用示例等內容,需要的朋友可以參考下 當用戶訪問頁面時,整個頁面將會被服務器保存在內存中,這樣就對頁面進行了緩存。當用戶再次訪問該頁,頁面不會再次

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云霄县| 利辛县| 禄丰县| 托克逊县| 论坛| 鸡东县| 双流县| 微博| 邢台市| 苍溪县| 出国| 祁连县| 西和县| 大荔县| 普定县| 韩城市| 上栗县| 玛多县| 平顺县| 邢台县| 嘉鱼县| 沅陵县| 依安县| 双柏县| 湖北省| 岱山县| 台湾省| 运城市| 双辽市| 呈贡县| 江华| 满洲里市| 古蔺县| 林周县| 仁怀市| 华蓥市| 五指山市| 临澧县| 馆陶县| 从江县| 社会|