我想与大家分享我今天学到的东西。我的问题是:
您可以将JSON对象从JavaScript代码传递到.NET Page方法吗?例如:
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);
如果可以的话,我的Web方法应该接受哪种类型的.NET对象?
我发现是的,您可以将JSON对象传递给Page Method,然后将其作为Dictionary(Of String,String)出现。所以我的网络方法签名看起来像这样:
<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
最佳答案
查看这篇文章:
http://dotnetslackers.com/columns/ajax/ASPNETAjaxWebService.aspx
用[GenerateScriptType(typeof(Task)))装饰WebMethod,然后在客户端就可以创建任务。然后将其作为常规对象传递给您的服务器端方法。