Method call with ajax in aspx.cs from aspx

I am trying to call a method on my aspx page. This method was found in the aspx.cs page, but it throws an error. Do you know what happened please?

ajax script

<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>

      

Site design Save marker title Description                                                                                                    

                                                                                                     Save                     

The Aspx.cs method.

[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

+3


source to share


2 answers


Your server side web method cannot be private, you must change it to public.

From MSDN Documentation on Web Methods :



When you create a web service in managed code, you specify the methods that are available through that web service by placing the WebMethod attribute in front of the public method method declaration. Private methods cannot serve as an entry point for a web service, although they can be in the same class and web service code can call them.

+4


source


Change your data

as follows

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

      



You need to pass data as json stirng

having a specific format. If you are using JSON.stringify

, the data will be written to a json string, and if you are not using that, you must pass every paremter and its value in quotes

like this.

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

      

+1


source







All Articles