运用ajax和jquey直接调用Aspx.cs后台的方法
注意:后台的方法必须是静态的,方法之前必须加上[WebMethod]
一:前台接收后台传过来的json
前台js
$.ajax({
type: "post",
url: "List.aspx/GetList",
dataType: "json",
contentType: "application/json",
success: function (data) {
for (var i = 0; i < data.d.length; i++) {
var tr = "<tr>" +
"<td>" + eval('(' + data.d + ')')[i].UserName + "</td>" +
"<td>" + eval('(' + data.d + ')')[i].Chinese + "</td>" +
"<td>" + eval('(' + data.d + ')')[i].Math + "</td>" +
"<td>" + eval('(' + data.d + ')')[i].English + "</td>" +
"<td id='hj'>" + sumFn(parseInt(eval('(' + data.d + ')')[i].Chinese), parseInt(eval('(' + data.d + ')')[i].Math), parseInt(eval('(' + data.d + ')')[i].English)) + "</td>" +
"</tr>";
$("#tb_list").append(tr);
}
}
});
后台方法
第一步:引用
using System.Web.Services;
第二步:
[WebMethod]
public static string GetList()
{
DataTable table = GetDT();//获取数据源
if (table.Rows.Count > 0)
{
string json = DataTableToJson(table);//将table转换为json格式
return json;
}
else
{
return "";
}
}
注意:在写ajax获取对象的值的时候总是出错,最后才知道要用 data.d , eval(‘(’ + data.d + ‘)’)[i].UserName 来获取。
二:后台接收前台传来的json
前台js
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "List.aspx/GetJson",//参数,这里是一个json语句
data: "{ 'student': '"+jsonT+"' }",
success: function (data) {
var result = data.d;
alert(result);
},
error: function (err) {
alert("err:" + err);
}
});
后台
[WebMethod]
public static string GetJson(string student)
{
string getjson = student;
return "OK";
}
注意:前台传值给后台时,后台总是断点进不去方法,可能是你方法没有static关键字,或者是js中传值的data写的不对以及后台获取时要跟前台的一样。
本文介绍如何使用Ajax和jQuery直接调用Aspx.cs后台的静态方法。强调了方法需标记为[WebMethod],前端接收后台JSON数据时需通过data.d获取,以及前端向后台传递数据时需注意方法的static属性和数据格式的匹配。
1935

被折叠的 条评论
为什么被折叠?



