Я абсолютно использую шаблоны разработки. В этой точке я считаю MVC само собой разумеющимся как шаблон разработки. Моя основная причина использования их - то, что я достаточно скромен, чтобы знать, что я вероятен не первый человек, который встретится с конкретной проблемой. Я редко запускаю часть кода, знающего, какой шаблон я собираюсь использовать; я постоянно наблюдаю код, чтобы видеть, разрабатывает ли он естественно в существующий шаблон.
я также очень люблю Martin Fowler Шаблоны Архитектуры приложений для предприятия . Когда проблема или задача представляют себя, я зеркально отражаю к связанному разделу (это - главным образом справочник), и прочитайте несколько обзоров шаблонов. Как только у меня есть лучшая идея общей проблемы и существующих решений, я начинаю видеть, что длительный срок соединить мой код каналом, вероятно, возьмет через опыт других. Я заканчиваю тем принял намного лучшие решения.
Шаблоны разработки определенно играют большую роль во всем из мой "для будущих" идей.
Насколько я знаю, нет способа отправить обратно два совершенно разных объекта JSON, которые не являются дочерними по отношению к единственному родительскому объекту JSON, и заставить jQuery декодировать их за вас с помощью .ajax ()
метод. Я полагаю, вы могли бы ответить двумя объектами JSON в виде строк, а затем использовать внешнюю библиотеку JSON для оценки строк в объекте Javascript.
Это ответ на ваш вопрос?
Ooops: Вы спрашиваете о публикации двух различных объектов JSON на ваш контроллер из jquery ..., верно? Мое плохое ... Да, вы можете это сделать ... Просто измените эту строку:
data: $.toJSON(data),
на:
data: { json_1:$.toJSON(data_1), json_2:$.toJSON(data_2) },
Извините за путаницу.
Если я правильно вас понял, функционально говоря, вы хотите отправить
object 1,
object 2
, что эквивалентно отправке
[
object 1,
object 2
]
. Единственное отличие состоит в том, что в первом случае массив является неявным, а в последнее явно. В любом случае он все еще там, но если вы хотите отправить несколько объектов в JSON, вам нужно использовать явный подход.
Таким образом, упаковка двух объектов данных в массив действительно является идеальным выбором, но если ваш серверный код не собираюсь поддержать, что вам понадобится альтернатива. Единственный возможный метод, который я вижу для этого, - это поместить оба объекта данных в другой объект, например:
var data = {};
data[0] = data1;
data[1] = data2;
А затем вы отправляете данных
вместе с вызовом AJAX.
Я бы пошел чтобы сказать, что проблема не в вашем подходе, а в обработке JSON на принимающей стороне.
Я думаю, вы можете сделать что-то вроде этого:
var data = {};
var object1 = {};
var object2 = {};
data.object1 = object1;<br/>
data.object2 = object2;
// serializer
JSON2.stringify(data);
Вы можете сделать это простым способом в asp.net, если вы просто хотите отправить несколько данных на webmethod
data: '{userName: "' + $("#<%=txtUserName.ClientID%>")[0].value + '",userName1: "' + $("#<%=TextBox1.ClientID%>")[0].value + '" }',