Подтвердить что ты не робот

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.

Любые идеи?

Спасибо!

4b9b3361

Ответ 1

Через несколько часов я нашел решение. Проблема заключалась не в том, что часть Нэнси, а в том, что мой пост ajax не имел правильных заголовков. добавление contentType и dataType делало трюк:

$.ajax({
    url: '/add',
    type: 'POST',
    data: normalModel,
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',

})

Надеюсь, это поможет будущим читателям!