2013-01-31 32 views
5

Tôi biết rằng có thể gửi yêu cầu AJAX đến trang .asmx. Và tôi cũng biết rằng trang .asmx xử lý yêu cầu AJAX qua phương thức web.Gửi yêu cầu AJAX tới trang .aspx và trả về JSON

Bạn cũng có thể gửi yêu cầu AJAX đến trang .aspx không? Nếu vậy, trang .aspx cũng có xử lý yêu cầu AJAX qua phương thức web không? Lưu ý rằng tôi muốn trả về phản hồi JSON từ trang .aspx. Điều này có thể không?

+0

đây là liên kết có thể giúp bạn http://blog.devarchive.net/2007/12/calling-page-methods-from-javascript.html –

Trả lời

8

Bạn có thể xác định phương pháp web trong code-behind của trang .aspx bạn và sau đó gọi cho họ:

[WebMethod] 
public static string doSomething(int id) 
{ 
    ... 
    return "hello"; 
} 

Và sau đó, để gọi một phương thức web trong mã jQuery của bạn:

$.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 là một liên kết tốt để bắt đầu.

2

nếu tôi hiểu đúng câu hỏi, Aspx giống với HTML. Nó sẽ được hiển thị dưới dạng HTML. nhưng chỉ có sự khác biệt là Server Side và Controls giữ lại các trạng thái với cơ chế trạng thái.

để bạn có thể thực hiện chức năng jquery $.ajax().

$.ajax({ 
    url: UrlToGetData, 
    dataType:'json', 
    success:function(data){ 
      //do some thing with data. 
      } 
}); 

hoặc nếu bạn muốn viết ra giá trị json để phản ứng, sau đó sử dụng Response.ContentType sử dụng đầu tiên bất kỳ serializer Javascript (JSON.NET), sau đó đặt contentType như thế này.

Response.ContentType="application/json"; 
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 
     } 
}); 

Thử mã trên

Các vấn đề liên quan