我知道可以向.asmx
页面发送AJAX请求。而且我也知道.asmx
页面通过Web方法处理AJAX请求。
是否也可以向.aspx
页面发送AJAX请求?如果是这样,.aspx
页面是否也通过Web方法处理AJAX请求?请注意,我想从.aspx
页面返回JSON响应。这可能吗?
答案 0 :(得分:9)
您可以在.aspx
页面的代码隐藏中定义网络方法,然后调用它们:
[WebMethod]
public static string doSomething(int id)
{
...
return "hello";
}
然后,在jQuery代码中调用web方法:
$.ajax({
type: "POST",
url: "YourPage.aspx/doSomething",
data: "{'id':'1'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
var returnedstring = data.d;
var jsondata = $.parseJSON(data.d);//if you want your data in json
}
});
Here是一个很好的入门链接。
答案 1 :(得分:2)
如果我正确理解问题,Aspx与HTML相同。它将呈现为HTML。但唯一的区别是服务器端和控件保留状态机制的状态。
所以你可以做jquery $.ajax()
函数。
$.ajax({
url: UrlToGetData,
dataType:'json',
success:function(data){
//do some thing with data.
}
});
或者如果要将json值写入响应,则使用Response.ContentType
首先使用任何Javascript序列化程序(JSON.NET),然后像这样设置contentType。
Response.ContentType="application/json";
答案 2 :(得分:1)
$.ajax({
url: "(aspx page name/method to be called from the aspx.cs page)",
type: "POST",
dataType: "json",
data: $.toJSON(jsonData),
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
//TO DO after success
}
});
试试上面的代码