使用Jquery提交Json格式的数据到Asp.net程序的另类做法

一般我们使用Jquery提交数据到Asp.net程序都有两种方法,今天我再介绍一种方法.以下是详细描述: 1)使用Get请求的方式,将参数接在请求Url的后面.例如: http://www.google.com.hk/search?q=jquery+post 获取参数的方法:在Asp.net中可以使用Request.QueryString["q"]来获取参数. 2)使用Jquery的Form.js插件中的ajaxForm方法或者 自己提交之前构造一个Form在使用ajaxForm提交数据.例如: $(document).ready(function(){ //简单模式 $("#btnSubmit1").click(function() { $("#form1").ajaxForm(); }); //复杂模式 $("#btnSubmit1").click(function() { var options = { method: 'POST', url: 'ajaxSP.aspx', after: function(response) { alert(response.id); } }; $("("#form1").ajaxForm(options); }); }); 获取参数的方法:在Asp.net中可以使用Request["q"]来获取参数. 3)那今天我想说一下第三种做法. 就是结合jQuery+Json+Asp.net并且利用Newtonsoft.Json.Net20.dll来进行Json数据的双向转换. jQuery代码: $.ajax({ url: "AjaxSP.aspx", data: "{type:'DoOpenClickStart',id:'1001'}", type: 'post', dataType: 'json', contentType: 'application/json; charset=utf8', success: function(data) { alert("ID=" + data.ID + ";Type=" + data.Type); }, error: function(xhr) { alert("失败!"); } }); Asp.net代码: 1.准备一个Entity类. publicclass AjaxSPE { /// /// 处理类型 /// publicstring Type { get; set; } /// /// 要处理的记录ID /// publicstring ID { get; set; } } 2.Asp.net接受参数以及输出结果的核心代码: //01.接受传入的参数(记得先引用Dll:Newtonsoft.Json.Net20.dll) string requestJson =string.Empty; using(StreamReader reader =new StreamReader(Context.Request.InputStream)) { requestJson = reader.ReadToEnd(); } AjaxSPE ajax2 =JsonConvert.DeserializeObject(requestJson, typeof(AjaxSPE)) as AjaxSPE; 结果数据如下图: //02.传出结果Json数据,并输出到客户端. Response.ClearContent(); Response.ContentType ="application/json"; AjaxSPE ajax =new AjaxSPE(); ajax.Type ="dddd"; ajax.ID ="1009"; string jsonString = Jsoner.JsonConvert.SerializeObject(ajax, Jsoner.Formatting.Indented); //输出Json数据到Content Response.Write(jsonString); Response.Flush(); Response.End(); 结果如下图: 好了,就介绍到这里.最然不是什么复杂的技术研究,也有它方便的地方.
posted @ 2012-08-27 18:54  最初的梦想  阅读(287)  评论(0编辑  收藏  举报