asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值

简介: 首先贴上Jquery的ajax:   代码 $.ajax({ url: 'ws_Ajax.asmx/BindDictByUpper', type: 'POST', contentType...

首先贴上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>
    //然后在webservice中需要返回json数据的方法加上如下属性
  [ScriptMethod(ResponseFormat=ResponseFormat.Json)]
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(), pdr["序号"].ToString());
}
jsonString.Remove(jsonString.Length
- 1 , 1 );
jsonString.Append(
" ] " );
return jsonString.ToString();
}

 

 ScriptMethod在 using System.Web.Script.Services 命名空间下,这里还可以设置是否使用 get方式来调用 UseHttpGet=true

然后尝试着运行,这是出问题列,无论怎样运行都不能调到后台方法:

最后在网上查列好久

才发现在新建的webservice页少了一句关键的话:

 

// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
 
 
[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数据,知道的给解答下……

 

 

目录
相关文章
N..
|
6月前
|
XML JSON 前端开发
jQuery实现Ajax
jQuery实现Ajax
N..
68 1
|
6月前
|
XML 前端开发 JavaScript
jQuery中ajax如何使用
jQuery中ajax如何使用
68 0
|
6月前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
149 0
|
5月前
|
前端开发 JavaScript
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
45 0
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
|
3月前
|
存储 JSON 前端开发
jQuery Get 请求参数转换为 JSON
【8月更文挑战第22天】
|
3月前
|
XML JSON 前端开发
AJAX是什么?原生语法格式?jQuery提供分装好的AJAX有什么区别?
AJAX是什么?原生语法格式?jQuery提供分装好的AJAX有什么区别?
32 0
|
3月前
|
JavaScript 前端开发
Ajax的使用(jquery的下载)
这篇文章是关于Ajax学习笔记的分享,包括JQuery的下载方式、Ajax的主要参数说明,以及如何在网页中使用Ajax进行异步请求的示例代码。
|
5月前
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
|
5月前
|
JSON JavaScript 前端开发
jQuery获取json文件的方法
jQuery获取json文件的方法
49 2
|
6月前
|
前端开发 JavaScript PHP
【PHP开发专栏】jQuery与PHP实现Ajax通信
【4月更文挑战第30天】本文介绍了使用jQuery和PHP实现Ajax通信的步骤。首先,讲解了Ajax的基础和jQuery简化Ajax操作的概念。接着,展示了如何使用jQuery的`$.get()`、`$.post()`和`$.ajax()`方法发送GET和POST请求,以及如何控制请求细节。在PHP端,讨论了接收和响应Ajax请求的方法,包括处理数据、设置响应类型和错误处理。结合jQuery与PHP,开发者能实现高效、无缝的异步数据传输,提升Web应用的用户体验。
124 1