首页 > 代码库 > asp.net Post Get提交数据转Model实例
asp.net Post Get提交数据转Model实例
此功能是将客户端HTTP协议POST GET方式提交的数据转换为某个Model实例,对于客户端浏览器Ajax提交的键值对或json格式数据直接转换为Model类的实例;
/********************************************************************************** 作者:Tyler** 创始时间:2013-05-28** 描述:通过js ajax 或 HTTP其他方式提交的GET,POST数据转换为指定的Model实例*********************************************************************************/using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Runtime.Serialization.Json;using System.Web.Script.Serialization;using System.IO;using System.Text;using System.Collections.Specialized;namespace MyHttpRequest{ public class RequestDataToCls { /// <summary> /// Post提交JSON格式转换为实体类 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="myrequest">Request对象</param> /// <returns>T</returns> public static T StramTomodelHttpPost<T>(HttpRequest myrequest) { byte[] byts = new byte[myrequest.InputStream.Length]; myrequest.InputStream.Read(byts, 0, byts.Length); string jsonstr = System.Text.Encoding.Default.GetString(byts); if (!String.IsNullOrEmpty(jsonstr)) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); JavaScriptSerializer jss = new JavaScriptSerializer(); try { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonstr))) { T jsonObject = (T)ser.ReadObject(ms); return jsonObject; } } catch (Exception ex) { throw new Exception("Serialize Error: " + ex.Message); } } else throw new Exception("Not KeyValue "); } /// <summary> /// Post提交Form集合转换为实体类 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="myrequest">Request对象</param> /// <returns>T</returns> public static T FormTomodelHttpPost<T>(HttpRequest myrequest) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); NameValueCollection coll = myrequest.Form as NameValueCollection; IDictionary<string, object> idc = new Dictionary<string, object>(); foreach (string name in coll.Keys) { idc.Add(name, coll[name].ToString()); } if (idc.Count > 0) { JavaScriptSerializer jss = new JavaScriptSerializer(); string jsonstr; try { jsonstr = jss.Serialize(idc); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonstr))) { T jsonObject = (T)ser.ReadObject(ms); return jsonObject; } } catch (Exception ex) { throw new Exception("Serialize Error: " + ex.Message); } } else throw new Exception("Not KeyValue "); } /// <summary> /// Get提交JSON格式转换为实体类 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="myrequest">Request对象</param> /// <returns>T</returns> public static T StramTomodelHttpGet<T>(string queryString) { string jsonstr = queryString; if (!String.IsNullOrEmpty(jsonstr)) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); JavaScriptSerializer jss = new JavaScriptSerializer(); try { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonstr))) { T jsonObject = (T)ser.ReadObject(ms); return jsonObject; } } catch (Exception ex) { throw new Exception("Serialize Error: " + ex.Message); } } else throw new Exception("Not KeyValue "); } /// <summary> /// Get提交QueryString集合转换为实体类 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="myrequest">Request对象</param> /// <returns>T</returns> public static T FormTomodelHttpGet<T>(HttpRequest myrequest) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); NameValueCollection coll = myrequest.QueryString as NameValueCollection; IDictionary<string, object> idc = new Dictionary<string, object>(); foreach (string name in coll.Keys) { idc.Add(name, coll[name].ToString()); } if (idc.Count > 0) { JavaScriptSerializer jss = new JavaScriptSerializer(); string jsonstr; try { jsonstr = jss.Serialize(idc); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonstr))) { T jsonObject = (T)ser.ReadObject(ms); return jsonObject; } } catch (Exception ex) { throw new Exception("Serialize Error: " + ex.Message); } } else throw new Exception("Not KeyValue "); } }}
asp.net Post Get提交数据转Model实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。