12

我有一个具有以下结构的 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)中收到 Post 时,只有字符串属性被绑定在这行代码中:

var model = this.databind<MyContainerModel>();

我尝试将列表类型更改为更具体的(List<MyContainerModel>),更改为数组(MyContainerModel[]),但似乎没有任何效果。

Nancy 的 git-repo 演示部分中的数据绑定示例仅处理整数的反序列化,但我的问题是使用 javascript 对象对数组进行反序列化。

有任何想法吗?

谢谢!

4

1 回答 1

23

几个小时后,我找到了解决方案。问题不在于它的南希部分,而是我的 ajax 帖子没有正确的标题。添加contentTypedataType就可以了:

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

})

希望这对未来的读者有所帮助!

于 2012-10-22T19:52:14.150 回答