日期:2014-05-17 浏览次数:21001 次
 这个当然不用说大家都知道的一种就是ajax调后台的方法。
1、有参数的方法调用
示例代码如下:
前台jQuery代码:
$(function() { 
?这个当然不用说大家都知道的一种就是ajax调后台的方法。 
1、有参数的方法调用
示例代码如下:
前台jQuery代码:
$(function() { 
? var browers = browersEstimate(); 
? var params = '{browersType:"' + browers + '"}'; 
? $.ajax({ 
????? type: "POST",?????????????????? //提交方式 
????? url: "Default.aspx/RecordData",?? //提交的页面/方法名 
????? data: params,?????????????????? //参数(如果没有参数:null) 
????? dataType: "json",?????????????????? //类型 
????? contentType: "application/json; charset=utf-8",????? 
????? success: function(data) {????? 
????????????? //返回的数据用data.d获取内容????? 
??????????????? alert(data.d);????? 
????????? },????? 
????????? error: function(err) {????? 
????????????? alert(err);????? 
???????? });??? 
???? });
这个是jquery下Ajax方法调用后台方法。
这个方法有几点需要说明:
type方式必须是post,再有就是后台的方法必须是静态的,方法声明要加上特性[System.Web.Services.WebMethod()],传递的参数个数也应该和方法的参数相同。
asp.net后台方法:
?? [System.Web.Services.WebMethod()] 
??? public static void RecordData(string browersType) 
??? { 
??????? if (BrowserControl.Counters == null) 
??????? { 
??????????? BrowserControl.InitData(0); 
??????? }
??????? if (browersType == "") 
??????? { 
??????????? browersType = "Other"; 
??????? }
??????? BrowserControl.AddOneByBrowserType(browersType); 
??????? if (BrowserControl.WriteInDataBase()) 
??????? { 
??????????? BrowserControl.OldTotalCount = BrowserControl.Counters.Count; 
??????? } 
??????? else 
??????? { 
??????????? BrowserControl.OldTotalCount = 0; 
??????? } 
??? }
2、无参数的方法调用
示例代码:
前台jQuery代码
$(function() {????? 
??? $("#btnOK").click(function() {????? 
??????? $.ajax({????? 
??????????? //要用post方式????? 
??????????? type: "Post",????? 
??????????? //方法所在页面和方法名????? 
??????????? url: "data.aspx/SayHello",????? 
??????????? contentType: "application/json; charset=utf-8",????? 
??????????? dataType: "json",????? 
??????????? success: function(data) {????? 
??????????????? //返回的数据用data.d获取内容????? 
??????????????? alert(data.d);????? 
??????????? },????? 
??????????? error: function(err) {????? 
??????????????? alert(err);????? 
??????????? }????? 
??????? });????? 
??????? //禁用按钮的提交????? 
??????? return false;????? 
??? });????? 
});
asp.net后台方法
[System.Web.Services.WebMethod()] 
public static string SayHello()????? 
{????? 
return "Hello Ajax!";????? 
}
3、返回数组方法的调用
示例代码:
asp.net 后台代码:
[System.Web.Services.WebMethod()]??? 
public static List GetArray()????? 
{????? 
? List li = new List();????? 
for (int i = 0; i < 10; i++)????? 
??????? li.Add(i + "");????? 
return li;????? 
} 
前台JQuery代码:
/**/????? 
$(function() {????? 
??? $("#btnOK").click(function() {????? 
??????? $.ajax({????? 
??????????? type: "Post",????? 
??????????? url: "data.aspx/Get