У меня строго типизированное представление с моей моделью представления, которая содержит объект «Человек» и «Список навыков». Человек довольно прост. Я использую Html Helpers, как это @Html.TextBoxFor(m => m.Person.FirstName)
. Я отправляю свою форму и получаю то, что хочу.
Проблема в моем списке навыков.
При вызове AJAX я получаю результат JSON, представляющий собой массив навыков.
Как мне отправить комбинацию навыков и человека в мой метод HTTPPOST?
Я вижу две возможности.
Тот, который я предпочитаю, но понятия не имею, как правильно реализовать: Каким-то образом удается получить этот результат JSON в мою модель представления (List<Skill> skilllist
) и использовать стандартную отправку кнопку и получить его в моем методе HTTPPOST, как это. (см. встроенные комментарии)
[HttpPost]
public ActionResult RegisterPersonAndSkills(PersonSkillViewModel model)
{
// I can acces the Person object and its properties
string firstname = model.Person.FirstName;
// It would be awesome if I could access the list which used to be a JSONresult
string skillname = model.SkillList[0].SkillName
return null;
}
Попробуйте преобразовать, сериализовать все, что находится в форме (часть объекта Person), в результат JSON, вставить массив полученных с помощью json результатов навыков в эту сериализованную модель представления и получить модель через привязку модели. С тем же результатом, что и вышеописанный метод. Опять же, я не уверен, как это реализовать и как справиться с возможными проблемами проверки. Кажется, много работы для сериализации каждого свойства Person в JSON и добавления объекта Person и массива навыков в JSON PersonSkillViewModel.
Как бы вы решили эту проблему?
Или просто невозможно получить оба результата в одном параметре?