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