使用 this.model.save() 保存模型和使用 jquery ajax 类型 PUT 之间似乎存在一些差异?
我的 api 控制器中有以下方法
public void Put(string id, [FromBody]IContent value) {
// save
}
我还在 JSON 格式化程序序列化程序设置上启用了 TypeNameHandling,如下所示:
config.Formatters.JsonFormatter.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;
如果我像这样使用 jquery ajax 放置一些数据
$.ajax({
url: "/api/page/articles/1",
type: "PUT",
dataType: "json",
contentType: "application/json",
data: JSON.stringify({"$type": "BrickPile.Samples.Models.Article,BrickPile.Samples","id": "articles/1", "heading": "Some heading..." })
});
我的对象在 put 方法中绑定正确,但是当我尝试在主干中使用 model.save() 保存对象时,输入值为 null 并且无法绑定对象?
我就是这样做的:
this.model.set({ heading: 'foo' });
this.model.save();
请求标头看起来不错,并且有效负载似乎是 JSON,至少如果我查看萤火虫的话。也可以使用具有相同有效负载的提琴手将一些数据放入我的 api,但如果我从 firebug 复制有效负载源,请参阅:http ://cl.ly/Nked
谁能解释我在这里做错了什么?