日期:2014-05-17  浏览次数:20941 次

Asp.net前台调后台方法

这个当然不用说大家都知道的一种就是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代码:

/**/??