国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 国产亚洲一欧美一区二区三区 | 小处雏高清一区二区三区 | zozozo欧美人禽交另类视频 | 黄毛片| 中国特黄毛片 | 亚洲 另类 在线 欧美 制服 | 碰91精品国产91久久婷婷 | 国产日韩视频一区 | 精品国产免费一区二区三区五区 | 亚洲激情另类 | 中文字幕韩国电影 | 欧美视频二区 | 99精品欧美一区二区三区综合在线 | www.91麻豆| 欧美1区二区三区公司 | 精品欧美视频 | 一级毛片一级毛片一级级毛片 | 欧美日视频 | 一区二区三区免费在线观看 | 欧美人一级淫片a免费播放 欧美精品专区免费观看 | 国语对白一区二区三区 | 在线观看亚洲一区 | 国产免费精彩视频 | 国产一区二区三区精品视频 | 国产1页| 亚洲一级毛片 | 国产精品va在线播放 | 一级一级一级毛片免费毛片 | 欧美在线 | 亚洲 | 免费观看a黄一级视频 | 国产精品一二区 | 91国偷自产一区二区三区 | 国产精品久久久精品三级 | 国产欧美日韩综合 | 国产美女一区二区 | 在线播放一区二区精品产 | 欧美成人国产 | 中文字幕一区二区三区不卡 | 久久国产精品自由自在 | 欧美精品一区二区在线观看 | 日本韩国欧美在线 |