html页面post json字符串到asp.net 接收并处理
2015-03-13 21:18
507 查看
这是html页面的js方法,使用JQ的ajax功能:
关键部分来了,研究、参考好多网页,几个小时才搞定:
aspx.cs:
类的声明,类的结构要和json字符串一模一样,不然各种错误:
最后补上jsonhelp的源码:
var handleurl = "../Controls/insert.aspx"; $.ajax({ url: handleurl,//请求的网址 type: 'POST',//类型 data: jsondata,//手动拼出来的json字符串 dataType: 'html',//可以不填写 success: function (msg) { var jsonobj = eval('(' + msg + ')');//回调函数处理一下 if (jsonobj.result != "200") { $.dialog.tips('<p>' + jsonobj.result + '!</p>', 2, 'alert.gif');//可以无视,这是lhgdialog的tip效果 } else { $.dialog.tips('<p>数据提交成功!</p>', 2, 'success.gif'); } } });
关键部分来了,研究、参考好多网页,几个小时才搞定:
aspx.cs:
Response.ContentType = "text/plain";
byte[] byts = new byte[Request.InputStream.Length]; Request.InputStream.Read(byts, 0, byts.Length); string req = System.Text.Encoding.Default.GetString(byts); maindata data = JsonHelper.ParseFormJson<maindata>(req);//这东西网上随便找 string branch = data.branch;//直接使用属性,至于类的声明,下边有对于json中,有两层甚至多层结构的:
List<textmodel> list_detail_p = data.textlist;//textlist为第一层的子节点,但是他也有很多子节点,此处需要这样处理。
类的声明,类的结构要和json字符串一模一样,不然各种错误:
public class textmodel//第二层 { public string id { get; set; } public string text { get; set; } } public class checkmodel//第二层</span> { public string id { get; set; } public string value { get; set; } } public class maindata//第一层 { public string branch { get; set; } public string company { get; set; } public string item { get; set; } public string room { get; set; } public string userid { get; set; } public List<textmodel> textlist { get; set; }//因为这个键对应多个值,用list声明 public List<checkmodel> checklist { get; set; } public maindata() { textlist = new List<textmodel>(); checklist = new List<checkmodel>(); } }
最后补上jsonhelp的源码:
public class JsonHelper { public JsonHelper() { // // TODO: Add constructor logic here // } /// <summary> /// 把对象序列化 JSON 字符串 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="obj">对象实体</param> /// <returns>JSON字符串</returns> public static string GetJson<T>(T obj) { //记住 添加引用 System.ServiceModel.Web /** * 如果不添加上面的引用,System.Runtime.Serialization.Json; Json是出不来的哦 * */ DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T)); using (MemoryStream ms = new MemoryStream()) { json.WriteObject(ms, obj); string szJson = Encoding.UTF8.GetString(ms.ToArray()); return szJson; } } /// <summary> /// 把JSON字符串还原为对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="szJson">JSON字符串</param> /// <returns>对象实体</returns> public static T ParseFormJson<T>(string szJson) { T obj = Activator.CreateInstance<T>(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson))) { DataContractJsonSerializer dcj = new DataContractJsonSerializer(typeof(T)); return (T)dcj.ReadObject(ms); } } }
相关文章推荐
- c#(asp.net)接收字符串(多条json)处理
- asp.net web 字符串转json并处理
- ASP.NET MVC Json()处理大数据异常解决方法,字符串的长度超过了为 maxJsonLength
- SpringMVC 接收页面Post提交的json字符串并解析
- ajax如果是json方式,接收页面echo出的变量一定要有json_encode()处理,html页面的返回函数success才能正常alert出这个变量
- 使用HTML页面和一般处理程序模拟ASP.NET WebForms中的事件
- asp.net处理Json数据时单引号与特殊字符串的处理
- ASP.NET WebApi MediaTypeFormatter参数绑定的研究,支持POST文本方式的JSON字符串绑定
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
- asp.net MVC接收前端传递的复杂json对象的简单处理方法
- ASP.NET POST XML JSON数据,发送与接收
- 如同asp那样从html页面post数据到另一个页面asp.net
- 【asp.net小札记】页面后台Post数据并接收返回数据
- ASP.NET获取POST提交过来的数据流,转换成Json格式的字符串
- ASP.NET的POST和GET提交并接收处理返回值
- asp.net动态生成html页面
- 代码阅读总结之Fitch and Mather 7.0(asp.net发生异常或错误时错误提示页面的处理方法)
- Asp.net动态生成html页面
- 将Asp.Net页面输出为HTML
- Asp.net 页面处理步骤