2015-05-28 2 views
3

Я пытаюсь вызвать метод на моей странице aspx. Этот метод найден на странице aspx.cs, но он выдает ошибку. Вы знаете, что случилось, пожалуйста?Вызов метода с ajax в aspx.cs из aspx

Ajax скрипт

<script type="text/javascript"> 
    function OnSucceeded(response) { 
     alert(response); 
    } 
    function OnFailed(error) { 
     alert(error); 
    }   //Default.aspx 
    function insertMarker() { 
     var usernameName = 'username'; 
     var usernameVal = document.getElementById('<%=hdnUsername.ClientID%>').value; 

     var latitudeName = 'latitudeStr'; 
     var latitudeVal = document.getElementById('<%=hdnMarkerLatitude.ClientID%>').value; 

     var longituteName = 'longitudeStr'; 
     var longitudeVal = document.getElementById('<%=hdnMarkerLongitude.ClientID%>').value; 

     var iconName = 'markerIcon'; 
     var iconVal; 
     if (document.getElementById('blueMarker').checked) { 
      iconVal = 'images/blueMarker.png'; 
     } 
     if (document.getElementById('greenMarker').checked) { 
      iconVal = 'images/greenMarker.png' 
     } 
     if (document.getElementById('pinkMarker').checked) { 
      iconVal = 'images/pinkMarker.png'; 
     } 

     var titleName = 'name'; 
     var titleVal = document.getElementById('<%=title.ClientID%>').value; 

     var descriptionName = 'description'; 
     var descriptionVal = document.getElementById('<%=description.ClientID%>').value; 

     $.ajax({ 
      type: "POST", 
      url: "mapping.aspx/insertNewMarker", 
      data: {"username" : usernameVal, "longitudeStr":longitudeVal, "latitudeStr" :latitudeVal, "markerIcon":iconVal, "name" : titleVal, "description" :descriptionVal}, 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown); 
      }, 
      success: function (result) { 
       alert("We returned: " + result.d); 
      } 
     }); 
    } 

    </script> 

Дизайн сайта Сохранить Маркер Название Описание        
Сохранить

Aspx.cs Метод.

[ScriptService] 
public partial class mapping: System.Web.UI.Page 
{ 
    [WebMethod] 
    private static void insertNewMarker(string username, string longitudeStr, string latitudeStr, string markerIcon, string name, string description) 
    { 

     //My Code 
    } 


} 

Error

+0

Какая ошибка вы получаете? – Steve

+0

редактировал сообщение –

+0

Ошибка 500 на самом деле не очень много говорит. Вы получаете сообщение об ошибке, если точка останова в коде? – Steve

ответ

4

на стороне сервера WebMethod не может быть частным, вы должны изменить его общественного.

От MSDN documentation on webmethods:

При создании веб-службы в управляемом коде, вы указать методы, которые доступны через этот веб-службы, помещая атрибут WebMethod до метода объявлении общественного метод. Приватные методы не могут служить точкой входа для веб-службы , хотя они могут находиться в одном классе, а код веб-службы может назвать их.

+0

изменил его, а m все еще получил ошибку –

1

Изменить ваш data как это

data:JSON.stringify({username : usernameVal, longitudeStr:longitudeVal, latitudeStr :latitudeVal, markerIcon:iconVal, name : titleVal, description :descriptionVal}), 

Вы должны передать данные в json stirng, который имеет определенный формат. Если вы используете JSON.stringify, данные будут записаны в строку json, и если вы не используете это, вы должны пройти every paremter and its value in quotes следующим образом.

data:"{username:'" + usernameVal + "',............}", 
+0

спасибо, что вы изменили его и до сих пор получили ошибку ... У меня нет большого опыта в ajax –

+0

Какая ошибка? См. Сообщение об ошибке в консоли браузера. – Mairaj

+0

обновлено сообщение –

Смежные вопросы