asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台
发布时间:2020-12-15 20:12:50 所属栏目:asp.Net 来源:网络整理
导读:首先贴上Jquery的ajax: 复制代码 代码如下: $.ajax({ url: 'ws_Ajax.asmx/BindDictByUpper', type: 'POST', contentType: 'application/json;charset=utf-8', dataType: 'json', data: '{ PpareId:"' + varlue + '"}', success: function (data) { var dataO
首先贴上Jquery的ajax: 复制代码 代码如下: $.ajax({ url: 'ws_Ajax.asmx/BindDictByUpper', type: 'POST', contentType: 'application/json;charset=utf-8', dataType: 'json', data: '{ PpareId:"' + varlue + '"}', success: function (data) { var dataObj = eval("(" + data + ")"); // $('#myList').html(''); // for (var i = 0; i < msg.d.length; i++) { // $('#myList').append('<li>' + msg.d[i] + '</li>'); // } alert(dataObj); $.each({ name: "John",lang: "JS" },function (i,n) { alert("Name: " + i + ",Value: " + n); }); $.each(dataObj,function (idx,item) { if (idx == 0) { return true; //同countinue,返回false同break } alert("name:" + item['name'] + ",value:" + item['value']); }); }, //data: '{query:"' + $('#editQuery').val() + '"}', processData: false }); 好,前台写好,建一个webservice页,写上方法: 复制代码 代码如下: /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table">Datatable对象</param> /// <returns>Json字符串</returns> public static string ToJson(DataTable Adt) { StringBuilder jsonString = new StringBuilder(); jsonString.Append("["); foreach (DataRow pdr in Adt.Rows) { jsonString.Append("{"); jsonString.AppendFormat("name:"{0}",value:"{1}"",pdr["字典内容"].ToString(),pdr["序号"].ToString()); jsonString.Append("},"); // jsonString.AppendFormat("{name:'{0}',value:'{1}'},",pdr["序号"].ToString()); } jsonString.Remove(jsonString.Length - 1,1); jsonString.Append("]"); return jsonString.ToString(); } 然后尝试着运行,这是出问题列,无论怎样运行都不能调到后台方法: 最后在网上查列好久 才发现在新建的webservice页少了一句关键的话: 复制代码 代码如下: [System.Web.Script.Services.ScriptService] 在类前面加上这句话就可以了 加上以后再运行,好,可以调到后台了 后台的数据也发送到前台 但又出现问题列,发过来的数据不能以解析出来json数据 按网上说的,只要把ajax中的dataType设置为json就行了,但是实际上不行,然后在网上查了下: 1、对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次 2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法 但是我把他的dataType设置为json,应该直接可以用le? 于是我把传回来的数据放在eval()方法里面处理了下,再调用就可以le? 这样前台调出来的数据就可以直接按你需要的方式处理了。 我这里还又一个疑问: 我用这种方式取数为什么查不出来数据(我对json不是很熟,第一次用): 复制代码 代码如下: $.each(data.root,function(idx,item){ if(idx==0){ return true;//同countinue,返回false同break } alert("name:"+item.name+",value:"+item.value); }); }); 网上看的这样方式页可以调用json数据,知道的给解答下…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在服务器端缓存ASP.NET自定义HttpHandler响应
- asp.net-mvc – 如何获取某些代码在ASP.NET MVC 2中的每个单
- 如何使用参数初始化ASP.NET用户控件?
- asp.net-mvc-2 – TempData未按预期清除
- asp.net – 无法加载文件或程序集’System.Net.Http,Versio
- asp.net core 系列 13 日志
- asp.net-mvc – 使用ASP.NET MVC支持“Expect:100-continu
- asp.net – 在单个位置禁用Windows身份验证
- 在Textbox asp.net上使用JQuery DatePicker
- asp.net-mvc – 实体创建抛出“没有为此对象定义的无参数构
推荐文章
站长推荐
- asp.net – 自动修复与’ASPStateTempSessions’
- asp.net-mvc – 本地文件ASP.NET / MVC的映射路径
- asp.net – 如何使用MVC Razor生成SVG
- asp.net-mvc – MVC Razor获取月份名称
- ASP.NET MVC中的Dropdownlist onchange事件不使用
- asp.net-mvc – ASP.NET MVC:如何使用模型呈现不
- asp.net – 如何对跨项目共享的资源进行版本控制
- 自签名ASP.NET Web API 2 REST服务的令牌身份验证
- asp.net-mvc – 将DropDownList绑定到MVC视图中
- 通过ASP.NET Web API + JQuery创建一个简单的Web
热点阅读