我有一个具有以下结构的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;}
我的问题是,当我在我的模块中收到Post(基于NancyModule)时,只有字符串属性被绑定在这行代码中:
var model = this.databind<MyContainerModel>();
我尝试将列表类型更改为更具体(List&lt; MyContainerModel&gt;),更改为Arrays(MyContainerModel []),但似乎没有任何效果。
Nancy的git-repo演示部分中的数据绑定示例仅涉及整数的反序列化,但我的问题是使用javascript对象对数组进行反序列化。
有什么想法吗?
谢谢!
答案 0 :(得分:23)
几个小时后我找到了解决方案。问题不在南希的部分,而是我的ajax帖子没有正确的标题。添加 contentType 和 dataType 可以解决问题:
$.ajax({
url: '/add',
type: 'POST',
data: normalModel,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
})
希望这有助于未来的读者!