Передать объект JSON в веб-метод - PullRequest
4 голосов
/ 10 апреля 2009

Я хотел поделиться тем, что я узнал сегодня со всеми вами. Мой вопрос был:

Можете ли вы передать объект 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);

А если можете, какой тип объекта .NET должен принимать мой веб-метод?

Я обнаружил, что да, вы можете передать объект JSON в метод страницы, и он выглядит как словарь (из строки, строки). Итак, моя подпись веб-метода выглядит так:

<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

Ответы [ 2 ]

4 голосов
/ 11 апреля 2009

Оформить заказ на эту статью: http://dotnetslackers.com/columns/ajax/ASPNETAjaxWebService.aspx

Украсьте свой WebMethod с помощью [GenerateScriptType (typeof (Task))], затем на стороне клиента вы сможете создать задачу. затем передайте его как обычный объект вашему методу на стороне сервера.

0 голосов
/ 13 февраля 2013

Подробный ответ на аналогичный вопрос гласит, что объединение JQuery & Json2.stringfy () может использоваться для отправки сложного типа в методы на стороне сервера.

А на стороне сервера вам нужно будет только указать требуемый тип в подписи метода

(например, foo (MyType obj) {...})

Как отправить объект JSON в веб-сервис asp.net и обработать там данные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...