2013-10-25 2 views
0

Из приведенного ниже кода javascript я пытаюсь вызвать метод serveride, но метод serververside не вызван. Я использую JQuery, Ajax Не удалось получить вызов на стороне сервера

<script type="text/javascript" src="JquryLib.js"></script> 
<script type="text/javascript" language="javascript"> 
    function fnPopulateCities() { 
     debugger; 
     var State = $("#ddlState").val(); 
     GetCities(State); 
     return false; 
    } 
    function GetCities(StateId) { 
     debugger; 
     var v1 = 'StateId: ' + StateId; 
     $.ajax(
    { 
     type: "POST", 
     url: 'DropDownList_Cascade.aspx/PopulateCities', 
     data: '{' + v1 + '}', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (result) { 
      if (result.status === "OK") { 
       alert('Success!!'); 
      } 
      else { 
       fnDisplayCities(result); 
      } 
     }, 
     error: function (req, status, error) { 
      alert("Sorry! Not able to retrieve cities"); 
     } 
    }); 
} 
</script> 

Это мой метод, который я на стороне сервера нужно позвонить.

private static ArrayList PopulateCities(int StateId) 
{ 
    //this code returns Cities ArrayList from database. 
} 

Это дает мне следующее сообщение об ошибке: 500 (Внутренняя ошибка сервера)

Я не могу понять, что это неправильно. пожалуйста помоги!

Трассировка стека:

[ArgumentException: Неизвестный веб-метод PopulateCities.Parameter имя: имяМетода]

+3

Есть ли у вас установить 'WebMethod' атрибут? И разве метод не должен быть «публичным»? –

+0

var v1 = "StateId: '" + "'" + StateId + "'"; – kgu87

+0

Ошибка происходит где-то на стороне сервера, хотя это может быть вызвано недействительным json, который вы отправляете на него. –

ответ

0

использовать этот скрипт:

function fnPopulateCities() { 
      debugger; 
      var State = $("#ddlState").val(); 
      GetCities(State); 
      return false; 
     } 
     function GetCities(StateId) { 
      debugger; 

      var data = { 
       'StateId': StateId 
      }; 

      $.ajax({ 
       type: "POST", 
       url: 'DropDownList_Cascade.aspx/PopulateCities', 
       data: JSON.stringify(data), // using from JSON.stringify is much better than to try stringify data manually 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (result) { 
        if (result.status === "OK") { 
         alert('Success!!'); 
        } 
        else { 
         fnDisplayCities(result); 
        } 
       }, 
       error: function (req, status, error) { 
        alert("Sorry! Not able to retrieve cities"); 
       } 
      }); 
     } 

и этот код для кода позади:

[System.Web.Services.WebMethod] 
    public static ArrayList PopulateCities(int StateId) 
    { 
     //this code returns Cities ArrayList from database. 
    } 
0

Используйте этот скрипт

function GetCities(StateId) { 
     debugger; 
     var v1 = "{'StateId': '" + StateId+"'}"; 
     $.ajax({ 
     type: "POST", 
     url: 'DropDownList_Cascade.aspx/PopulateCities', 
     data: v1, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (result) { 
      if (result.status === "OK") { 
       alert('Success!!'); 
      } 
      else { 
       fnDisplayCities(result); 
      } 
     }, 
     error: function (req, status, error) { 
      alert("Sorry! Not able to retrieve cities"); 
     } 
    }); 
} 

и изменить код За

[System.Web.Services.WebMethod] 
public static ArrayList PopulateCities(int StateId) 
{ 
    //this code returns Cities ArrayList from database. 
} 
Смежные вопросы