日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

ASP.NET中實(shí)現(xiàn)Form表單字段值自動(dòng)填充到操作模型中_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

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

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

  我們知道ASP.NET MVC有個(gè)強(qiáng)大的地方就是Form表單提交到action的時(shí)候,可以直接將Form的參數(shù)直接裝配到action的參數(shù)實(shí)體對(duì)象中

  比如

   代碼如下:

  action方法 Register(UserModel userModel)

  {

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

  }

  在提交表單的時(shí)候,會(huì)自動(dòng)講表單里面的字段封裝到對(duì)應(yīng)的UserModel字段里面

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

  因?yàn)槊看味家カ@得數(shù)據(jù),優(yōu)秀的程序員應(yīng)該要學(xué)會(huì)代碼封裝,代碼復(fù)用,重復(fù)的工作不要做

  我們其實(shí)可以利用反射來實(shí)例化對(duì)象的(自動(dòng)裝配)

  好了廢話不多....

  pageload里面很簡單了

   代碼如下:

  protected void Page_Load(object sender, EventArgs e)

  {

  if (!IsPost())

  {

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

  }

  else

  {

  UserModel userModel = AssembleModel(base.valueCollection);

  }

  }

  關(guān)鍵就是基類里面的AssembleModel 方法了

  基類里面

  我們首先獲取到上下文的參數(shù) IT404

   代碼如下:

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

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

  然后再看AssembleModel方法了,這是一個(gè)泛型方法

  代碼如下:

  ///

 

  /// 反射獲取類的屬性

  ///

 

  ///

  ///

  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;

  }

  ///

 

  /// 根據(jù)NameValueCollection 自動(dòng)裝配

  ///

 

  ///

  ///

  ///

  protected T AssembleModel(NameValueCollection valueCollection)

  {

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

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

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

  {

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

  {

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

  {

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

  }

  }

  }

  return (T)obj;

  }

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

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

  代碼如下:

  UserModel userModel = AssembleModel(base.valueCollection);

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

來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2015-06-08
相關(guān).Net教程