65.9K
CodeProject is changing. Read more.
Home

Calling a Page method with complex parameter using jason.stringfy() method

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0 vote)

Oct 11, 2013

CPOL

1 min read

viewsIcon

6303

Most of the time when i tried to search for executing server side static page methods using jquery I came across simple example which explained how

Most of the time when i tried to search for executing server side static page methods using jquery I came across simple example which explained how to call page methods which took parameters of simple types like string and integer.However none of the example explained how we can send complex object to the page method.

Consider this scenario i have a Page method which take in a parameter of type Employee and returns returns the corresponding Manager some thing like this.

[System.Web.Services.WebMethod()]
public static Manager ShowGetmanager(Employee emp)
{
Manager oManager = null;
{
// some logic to get manager
}
return oManager;
}

How i want to send in the page method a parameter of type Employee from my javascript.Some how as I explained before i was not able to figure out a way of sending this complex type since all the example i came across were using he parameter as string.Then i stumbled upon a method called JSON.stringfy() this is what i Did to send the complex obejct to the server page method

    function GetData() {
       var DTO = { "emp": { "__type": "ResearchWebApplication.Employee", "Name": "Amit", "ID": 1, "Telephone": null} }
       $.ajax({
           type: "POST",
           contentType: "application/json; charset=utf-8",
           url: "Default.aspx/ShowGetmanager",
           data: JSON.stringify(DTO), 
           dataType: "json",
           success: function(msg) {
           $('div#OutputDiv').append(JSON.stringify(msg));
              alert(msg.d);
          }, error: HandleError
       });

   }

   function HandleError(jqXHR, textStatus, errorThrown) {
       $('div#OutputDiv').append(JSON.stringify(errorThrown));
   }