• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    ASP.NET中實現把form表單元素轉為實體對象或集合

    來源:懂視網 責編:小采 時間:2020-11-27 22:38:28
    文檔

    ASP.NET中實現把form表單元素轉為實體對象或集合

    ASP.NET中實現把form表單元素轉為實體對象或集合:簡介: 做WEBFROM開發的同學都知道后臺接收參數非常麻煩 雖然MVC中可以將表單直接轉為集實,但不支持表單轉為 LIST<T>這種集合 單個對象的用法: 表單: 代碼如下: <input name='id' value='1' > <input name='s
    推薦度:
    導讀ASP.NET中實現把form表單元素轉為實體對象或集合:簡介: 做WEBFROM開發的同學都知道后臺接收參數非常麻煩 雖然MVC中可以將表單直接轉為集實,但不支持表單轉為 LIST<T>這種集合 單個對象的用法: 表單: 代碼如下: <input name='id' value='1' > <input name='s

    簡介:

    做WEBFROM開發的同學都知道后臺接收參數非常麻煩

    雖然MVC中可以將表單直接轉為集實,但不支持表單轉為 LIST<T>這種集合

    單個對象的用法:

    表單:

    代碼如下:
    <input name='id'  value='1' >
    <input name='sex'  value='男' >

    后臺:
    代碼如下:
    //以前寫法
                DLC_category d = new DLC_category();
                d.sex = Request["sex"];
                d.id = Convert.ToInt32(Request["id"]);


                //現在寫法
                var category = RequestToModel.GetSingleForm<DLC_category>();

    集合對象的用法:

    表單:
    代碼如下:
    <input name='id'  value='1' >
    <input name='sex'  value='男' >
     
     
    <input name='id'  value='2' >
    <input name='sex'  value='女' >
     
    <input name='id'  value='3' >
    <input name='sex'  value='女' >

    后臺:
    代碼如下:
      List<DLC_category> categoryLists = RequestToModel.GetListByForm<DLC_category>();

    源碼:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
     
    namespace SyntacticSugar
    {
     /// <summary>
     /// ** 描述:表單幫助類
     /// ** 創始時間:2015-4-17
     /// ** 修改時間:-
     /// ** 作者:sunkaixuan
     /// ** qq:610262374 歡迎交流,共同提高 ,命名語法等寫的不好的地方歡迎大家的給出寶貴建議
     /// </summary>
     public class RequestToModel
     {
     
     /// <summary>
     /// 提交表單通過反射獲取單個像
     /// 注意:表單控件name必包含對應類中的第一個字段,否則將報錯
     /// </summary>
     public static T GetSingleForm<T>() where T : new()
     {
     T t = SetList<T>(null, 0).Single();
     return t;
     }
     
     
     /// <summary>
     /// 提交表單通過反射獲取單個像
     /// 注意:表單控件name必包含對應類中的第一個字段,否則將報錯
     /// <param name="appstr">控件前綴,比如 name="form1.sex" appstr可以設為form1</param>
     /// </summary>
     public static T GetSingleForm<T>(string appstr) where T : new()
     {
     T t = SetList<T>(appstr, 0).Single();
     return t;
     }
     
     /// <summary>
     /// 提交表單通過反射獲取多個對像
     /// 注意:表單控件name必包含對應類中的第一個字段,否則將報錯
     /// </summary>
     /// <typeparam name="type"></typeparam>
     /// <param name="type"></param>
     /// <returns></returns>
     public static List<T> GetListByForm<T>() where T : new()
     {
     List<T> t = SetList<T>(null, 0);
     return t;
     }
     
     /// <summary>
     /// 提交表單通過反射獲取多個對像
     /// 注意:表單控件name必包含對應類中的第一個字段,否則將報錯
     /// </summary>
     /// <typeparam name="type"></typeparam>
     /// <param name="appstr">控件前綴,比如 name="form1.sex" appstr可以設為form1</param>
     /// <returns></returns>
     public static List<T> GetListByForm<T>(string appstr) where T : new()
     {
     List<T> t = SetList<T>(appstr, 0);
     return t;
     }
     
     
     /// <summary>
     /// 提交表單通過反射獲取多個對像
     /// </summary>
     /// <typeparam name="type"></typeparam>
     /// <param name="appstr">控件前綴,比如 name="form1.sex" appstr可以設為form1</param>
     /// <typeparam name="index">表單控件中第一個控件,對應類中字段在該類中的索引號,特殊情況可以是第二第三控件</typeparam>
     /// <returns></returns>
     private static List<T> GetListByForm<T>(string appstr, int index) where T : new()
     {
     List<T> t = SetList<T>(appstr, index);
     return t;
     }
     
     
     
     private static List<T> SetList<T>(string appendstr, int index) where T : new()
     {
     List<T> t = new List<T>();
     try
     {
     var properties = new T().GetType().GetProperties();
     var subNum = System.Web.HttpContext.Current.Request[appendstr + properties[index].Name].Split(',').Length;
     for (int i = 0; i < subNum; i++)
     {
     var r = properties;
     var model = new T();
     foreach (var p in properties)
     {
     string pval = System.Web.HttpContext.Current.Request[appendstr + p.Name + ""];
     if (!string.IsNullOrEmpty(pval))
     {
     pval = pval.Split(',')[i];
     string pptypeName = p.PropertyType.Name;
     p.SetValue(model, Convert.ChangeType(pval, p.PropertyType), null);
     }
     }
     t.Add(model);
     }
     }
     catch (Exception ex)
     {
     
     
     throw ex;
     }
     
     
     return t;
     }
     }
    }
    

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    ASP.NET中實現把form表單元素轉為實體對象或集合

    ASP.NET中實現把form表單元素轉為實體對象或集合:簡介: 做WEBFROM開發的同學都知道后臺接收參數非常麻煩 雖然MVC中可以將表單直接轉為集實,但不支持表單轉為 LIST<T>這種集合 單個對象的用法: 表單: 代碼如下: <input name='id' value='1' > <input name='s
    推薦度:
    標簽: 對象 轉為 表單
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产亚洲欧洲精品| 精品人妻V?出轨中文字幕| 国产精品理论片在线观看| 亚洲av永久无码精品网站| 国产L精品国产亚洲区久久| 国产AV国片精品有毛| 亚洲国产精品VA在线观看麻豆| 国产一区精品| 国产精品99久久不卡| 国产精品久久一区二区三区| 精品熟女少妇av免费久久| 亚洲欧美精品丝袜一区二区| 久久精品亚洲乱码伦伦中文| 国产精品无码国模私拍视频| 中文字幕亚洲综合精品一区| 华人亚洲欧美精品国产 | 99久久亚洲综合精品网站| www.亚洲精品| www.久久精品| 精品国产品香蕉在线观看75| 99久久这里只有精品| 国产精品一久久香蕉国产线看| 久久99精品久久久久久久不卡 | 国产日产韩国精品视频| 日本内射精品一区二区视频| 中文字幕日韩精品有码视频| 四虎国产精品免费久久| 久久久精品视频免费观看| 欧美成人精品第一区二区三区| 看99视频日韩精品| 人妻精品久久久久中文字幕| 久久久久亚洲精品男人的天堂| 麻豆国产高清精品国在线| 日韩精品免费一线在线观看| 久久精品中文字幕有码| 四虎国产精品永久在线看| 亚洲综合av永久无码精品一区二区 | 久久精品中文字幕一区| 人妻少妇精品久久| 亚洲AV无码久久精品成人| 日韩精品一区二区三区中文|