2009-04-10 178 views
4

我想与大家分享今天我学到的东西。我的问题是:将JSON对象传递给Web方法

您能否将JavaScript代码中的JSON对象传递给.NET Page Method?例如:

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对象给页面方法,它会以字典(字符串,字符串)的形式出现。所以,我的Web方法的签名是这样的:

<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 
+0

这是问答网站,而不是博客。 – 2009-04-10 19:33:29

+0

从stackoverflow的常见问题解答:“提问并回答你自己的编程问题也很好,但假装你在危险之中:用问题的形式说出它。”你没有这样做。也许将其重写为问题/答案。 – artlung 2009-04-10 19:48:29

回答