程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.net下的對象成員數據綁定器實現

Asp.net下的對象成員數據綁定器實現

編輯:關於ASP.NET

用過MonoRail的朋友應該知道它提供的對象成員數據綁定功能非常方便,通過標記參數屬性或方法就可以自動把提交回來的數據和對象成員進行綁定;有了這些方便的功能的確可以節省大量的set代碼。不過這些功能只是MonoRail提供,於是實現類似的功能方便自己開發。

實現目標:

可以靈活方便地實現數據綁定。

OrderSearch search = FormContext.BindObject<OrderSearch>();

Orders order = FormContext.BindObject<Orders>("order");

制定規則和約束

首先確定WEB提交的數據和成員屬性的映射關系,可以通過名稱約定的方式:

<input id="Text1" name="companyname" type="text" />

xxxx.LastName、xxxx_LastName或xxxxLastName等。在綁過程可以指定前綴進行對象成員的綁定;不過在webForm控件的Name是asp.net生成的,在關系分析上就相對復雜些。

類型轉換接口的定義

因為轉換的情況是很難確定;除了。NET的基礎類型外實際應用中還會存在其他轉換方式,如:HttpPostedFile到byte[],序列化String到Object等。因此制定轉換接口就可以方便實現可擴展和可配置。

public interface IStringConverter
   {
     object ConvertTo(string value, out bool succeeded);
   }

由於Web提供的數據大部份是以string的方式提供,因此定義一個基於string轉換描述。基於接口的實也很簡單:

public class ToSbyte  :IStringConverter
   {

     #region IStringConverter 成員

     object IStringConverter.ConvertTo(string value, out bool succeeded)
     {
       sbyte nvalue;
       succeeded = sbyte.TryParse(value, out nvalue);
       return nvalue;
     }

     #endregion
   }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved