我想与大家分享我今天学到的东西。我的问题是:

您可以将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,然后在客户端就可以创建任务。然后将其作为常规对象传递给您的服务器端方法。

09-25 17:21