2013-01-31 13 views
5

Wiem, że możliwe jest wysłanie żądania AJAX do strony .asmx. Wiem również, że strona .asmx obsługuje żądanie AJAX za pomocą metody internetowej.Wyślij żądanie AJAX do strony .aspx i zwróć JSON

Czy jest również możliwe wysłanie żądania AJAX do strony .aspx? Jeśli tak, czy strona .aspx obsługuje również żądanie AJAX za pomocą metody internetowej? Zwróć uwagę, że chciałbym zwrócić odpowiedź JSON ze strony .aspx. czy to możliwe?

+0

Oto link, który może Ci pomóc http://blog.devarchive.net/2007/12/calling-page-methods-from-javascript.html –

Odpowiedz

8

Można zdefiniować metody internetowych w opóźnieniem kodu swojej strony .aspx a następnie zadzwonić do nich:

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

A potem, aby wywołać metoda sieciowa w kodzie jQuery:

$.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 to dobry link do rozpoczęcia.

2

Jeśli dobrze zrozumiałem pytanie, Aspx jest taki sam jak HTML. Będzie renderowany jako HTML. ale jedyną różnicą jest to, że Server Side i Controls zachowują stany z mechanizmem stanu.

dzięki czemu można wykonać funkcję jquery $.ajax().

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

lub jeśli chcesz się wypisać wartość json do odpowiedzi, a następnie użyć Response.ContentType pierwsze użycie dowolnego Javascript serializer (JSON.NET), a następnie ustawić contentType jak ten.

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 
     } 
}); 

Spróbuj powyższy kod

Powiązane problemy