I wanted to shared something I learned today with you all. My question was:
Can you pass a JSON object from JavaScript code to a .NET Page Method? For example:
var task = {
Title: $("#titlenew input", $(newTaskRow)).val(),
StartDate: $("#startnew input", $(newTaskRow)).val(),
EndDate: $("#endnew input", $(newTaskRow)).val(),
EstimatedHours: $("#esthrsnew input", $(newTaskRow)).val(),
PredecessorsOutlineNumbers: $("#depnew input", $(newTaskRow)).val(),
OutlineNumber: $("#ordernew", $(newTaskRow)).text()
};
PageMethods.AddTask(task, saveNewTaskCompleted, saveNewTaskFailed);
And if you can, what type of .NET object should my web method accept?
I found out that yes, you can pass a JSON object to a Page Method, and it comes across as a Dictionary(Of String, String). So my web method signature looks like this:
<System.Web.Services.WebMethod()> _
Public Shared Sub AddTask(ByVal taskJson As Dictionary(Of String, String))
Dim oTask As New Task()
oTask.Title = taskJson("Title")
' all other accesses to the JSON object here
End Sub
Checkout this article: http://dotnetslackers.com/columns/ajax/ASPNETAjaxWebService.aspx
Decorate your WebMethod with [GenerateScriptType(typeof(Task))] then in client side you will be able to create task. then pass it as regular object to your server side method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With