У меня есть сложный объект JSON, который я хотел бы передать на маршрут контроллера MVC4.AJAX POST Комплекс JSON для контроллера MVC4
{
"name": "Test",
"description": "Description",
"questions": [
{
"id": "1",
"type": "1",
"text": "123",
"answers": [
{
"answer": "123",
"prerequisite": 0
},
{
"answer": "123",
"prerequisite": 0
}
],
"children": [
{
"id": "2",
"type": "2",
"text": "234",
"answers": [
{
"answer": "234",
"prerequisite": 0
},
{
"answer": "234",
"prerequisite": 0
}
],
"children": []
}
]
}
]
Я эти ViewModels определены:
public class FormDataTransformContainer
{
public string name { get; set; }
public string description { get; set; }
public QuestionDataTransformContainer[] questions;
}
public class QuestionDataTransformContainer {
public int type { get; set; }
public string text { get; set; }
public AnswerDataTransformContainer[] answers { get; set; }
public QuestionDataTransformContainer[] children { get; set; }
}
public class AnswerDataTransformContainer {
public string answer { get; set; }
public int prerequisite { get; set; }
}
И это маршрут я удар:
[HttpPost]
public ActionResult Create(FormDataTransformContainer formData)
{
В настоящее время, название и описание объекта на FormDataTransformContainer установлены, но массив вопросов равен нулю. Я надеялся, что привязка данных выяснит это, но я предполагаю, что древовидная структура данных немного сложна для этого. Если я правильно понимаю, что является лучшим решением для этого?
Разберите его с помощью библиотеки, например [JSON.NET] (http://json.codeplex.com/) –
Как выглядит ваш контроллер? –
@RobertHarvey, я надеялся, что есть какая-то волшебница DataBinding, которой я отсутствовал, но JSON.NET обеспечивает десериализацию, в которой я нуждаюсь. – mam8cc