Отправить несколько вкладок в одном представлении ASP.NET MVC - PullRequest
0 голосов
/ 26 мая 2019

У меня есть приложение ASP .NET с несколькими вкладками в представлении, каждая вкладка содержит несколько входов для каждого участника курса (имя, номер телефона, должность и т. Д.).

Я создал функцию jquery для сбора данных из представлений и соответственно сгенерировал JSON:

 function getAttendees() {
            var sections = [];

            $(".divWithInputs").each(function (i, val) {
                var tab = $(val).serializeArray();
                sections.push(tab);
            });

            return sections;
        }

И функция отправки:

$("#checkoutAttendees").click(function () {
                var formData = new FormData();
                formData.append("Attendees", JSON.stringify(getAttendees()));

                $.ajax({
                    url: "/controllerURL",
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    cache: false,
                    contentType: false,
                    processData: false,
                    data: formData,
                    success: function (response) {
                        alert(response);
                    }
                });
            });

У меня есть проблема при чтении JSON, потому что мне нужен объект IEnumerable Attendee для заполнения данными такого рода:

[  
   [  
      {  
         "name":"first-name-attendee-0",
         "value":"Jon"
      },
      {  
         "name":"last-name-attendee-0",
         "value":"Stark"
      },
      {  
         "name":"email-attendee-0",
         "value":"jon.stark@northwall.com"
      },
      {  
         "name":"phone-attendee-0",
         "value":"0181042981029840"
      },
      {  
         "name":"company-attendee-0",
         "value":"Nightwatch"
      },
      {  
         "name":"job-title-attendee-0",
         "value":"King"
      }
   ],
   [  
      {  
         "name":"first-name-attendee-1",
         "value":"Aria"
      },
      {  
         "name":"last-name-attendee-1",
         "value":"Stark"
      },
      {  
         "name":"email-attendee-1",
         "value":"noemail@nodomain.com"
      },
      {  
         "name":"phone-attendee-1",
         "value":"000000000000000"
      },
      {  
         "name":"company-attendee-1",
         "value":"No organization"
      },
      {  
         "name":"job-title-attendee-1",
         "value":"Killer"
      }
   ],
   [  
      {  
         "name":"first-name-attendee-2",
         "value":"Mad"
      },
      {  
         "name":"last-name-attendee-2",
         "value":"King"
      },
      {  
         "name":"email-attendee-2",
         "value":"mad.king@yahoo.com"
      },
      {  
         "name":"phone-attendee-2",
         "value":"019209840921840219"
      },
      {  
         "name":"company-attendee-2",
         "value":"Kingdom"
      },
      {  
         "name":"job-title-attendee-2",
         "value":"King"
      }
   ]
]

Любой совет, как правильно преобразовать данные из JSON в список участников?

Спасибо.

1 Ответ

0 голосов
/ 27 мая 2019

Решение: в бэкэнде мне пришлось создать список списков NameValuePair

Метод Action выглядит следующим образом:

[HttpPost]
        public ActionResult TrainingBook(FormCollection formCollection)
        var viewModel = new TrainingFormViewModel();

        var attendeesListJSON = formCollection["Attendees"];

        var attendeesJson = JsonConvert.DeserializeObject<List<List<KeyValuePair<string, string>>>>(attendeesListJSON);

        List<Attendees> attendees = new List<Attendees>();

        foreach (var item in attendeesJson)
        {
            attendees.Add(new Attendees {
                FirstName = item[0].Value,
                LastName = item[1].Value,
                WorkEmailAddress = item[2].Value,
                PhoneNumber = item[3].Value,
                Organization = item[4].Value,
                JobTitle = item[5].Value
            });
        }

Пара ключ-значение - это имя и значение для вводапервый список пар ключ-значение - один участник, список списков, ofc, все участники.

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