Model-bind POST с массивом объектов в NancyFx
У меня есть json-объект со следующей структурой
{
ContainerType: "Box",
Items : [{Name: "Coin", Amount: 5}, {Name: "Spyglas", Amount : 1}]
}
Этот объект имеет представление в бэкэнд-системе Nancy:
public string ContainerType {get; set}
public IEnumberable<Item> Items {get; set}
где Item (как и ожидалось) - очень простой объект с общедоступными свойствами:
public string Name {get; set;}
public double Amount {get; set;}
Моя проблема в том, что когда я получаю сообщение в своем модуле (на основе NancyModule), в этой строке кода привязывается только свойство строки:
var model = this.databind<MyContainerModel>();
Я попытался сменить типы списков более конкретным (List <MyContainerModel> ) в Массивы (MyContainerModel []), но ничего не работает.
Примеры привязки данных в демонстрационном разделе git -repo для Nancy относятся только к десериализации ints, но мой вопрос заключается в десериализации массивов с объектами javascript.
Любые идеи?
Спасибо!
Ответы
Ответ 1
Через несколько часов я нашел решение. Проблема заключалась не в том, что часть Нэнси, а в том, что мой пост ajax не имел правильных заголовков. добавление contentType и dataType делало трюк:
$.ajax({
url: '/add',
type: 'POST',
data: normalModel,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
})
Надеюсь, это поможет будущим читателям!