Передача Нескольких Объектов Json как данные с помощью $ jQuery .ajax ()

Я абсолютно использую шаблоны разработки. В этой точке я считаю MVC само собой разумеющимся как шаблон разработки. Моя основная причина использования их - то, что я достаточно скромен, чтобы знать, что я вероятен не первый человек, который встретится с конкретной проблемой. Я редко запускаю часть кода, знающего, какой шаблон я собираюсь использовать; я постоянно наблюдаю код, чтобы видеть, разрабатывает ли он естественно в существующий шаблон.

я также очень люблю Martin Fowler Шаблоны Архитектуры приложений для предприятия . Когда проблема или задача представляют себя, я зеркально отражаю к связанному разделу (это - главным образом справочник), и прочитайте несколько обзоров шаблонов. Как только у меня есть лучшая идея общей проблемы и существующих решений, я начинаю видеть, что длительный срок соединить мой код каналом, вероятно, возьмет через опыт других. Я заканчиваю тем принял намного лучшие решения.

Шаблоны разработки определенно играют большую роль во всем из мой "для будущих" идей.

7
задан dano 9 October 2009 в 19:22
поделиться

4 ответа

Насколько я знаю, нет способа отправить обратно два совершенно разных объекта JSON, которые не являются дочерними по отношению к единственному родительскому объекту JSON, и заставить jQuery декодировать их за вас с помощью .ajax () метод. Я полагаю, вы могли бы ответить двумя объектами JSON в виде строк, а затем использовать внешнюю библиотеку JSON для оценки строк в объекте Javascript.

Это ответ на ваш вопрос?

Ooops: Вы спрашиваете о публикации двух различных объектов JSON на ваш контроллер из jquery ..., верно? Мое плохое ... Да, вы можете это сделать ... Просто измените эту строку:

data: $.toJSON(data),

на:

data: { json_1:$.toJSON(data_1), json_2:$.toJSON(data_2) },

Извините за путаницу.

16
ответ дан 6 December 2019 в 10:51
поделиться

Если я правильно вас понял, функционально говоря, вы хотите отправить

object 1,
object 2

, что эквивалентно отправке

[
    object 1,
    object 2
]

. Единственное отличие состоит в том, что в первом случае массив является неявным, а в последнее явно. В любом случае он все еще там, но если вы хотите отправить несколько объектов в JSON, вам нужно использовать явный подход.

Таким образом, упаковка двух объектов данных в массив действительно является идеальным выбором, но если ваш серверный код не собираюсь поддержать, что вам понадобится альтернатива. Единственный возможный метод, который я вижу для этого, - это поместить оба объекта данных в другой объект, например:

var data = {};
data[0] = data1;
data[1] = data2;

А затем вы отправляете данных вместе с вызовом AJAX.

Я бы пошел чтобы сказать, что проблема не в вашем подходе, а в обработке JSON на принимающей стороне.

1
ответ дан 6 December 2019 в 10:51
поделиться

Я думаю, вы можете сделать что-то вроде этого:

var data = {};
var object1 = {};
var object2 = {};

data.object1 = object1;<br/>
data.object2 = object2;

// serializer

JSON2.stringify(data);
0
ответ дан 6 December 2019 в 10:51
поделиться

Вы можете сделать это простым способом в asp.net, если вы просто хотите отправить несколько данных на webmethod

data: '{userName: "' + $("#<%=txtUserName.ClientID%>")[0].value + '",userName1: "' + $("#<%=TextBox1.ClientID%>")[0].value + '" }',
1
ответ дан 6 December 2019 в 10:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: