当使用backbone.js 和web api 控制器时,这是一个两阶段的问题。
我有一个简单的 web api 控制器,它返回一个 JSON 字符串,在提琴手中,结果如下所示:
{
"$type": "MvcApplication.Models.Article, MvcApplication",
"Id": "1",
"Heading":"The heading"
}
我使用以下代码从我的 web api 获取用户
var user = new Usermodel({ id: "1" });
user.fetch({
success: function (u) {
console.log(u.toJSON());
}
});
现在我的主干用户对象看起来像这样
{
id: "1",
{
"$type": "MvcApplication.Models.Article, MvcApplication",
"Id": "1",
"Heading": "The heading"
}
}
当我尝试将此骨干模型对象绑定到我的视图模板时,看起来像这样
<form>
<input type="text" value="<%=Heading%>" />
<input type="submit" value="Save" />
</form>
我明白了,标题是未定义的,但是当我使用 id 时它绑定得很好?似乎下划线不喜欢主干模型对象,只想要一个普通的 JSON 对象,就像我从我的 web api 获得的对象一样?
第二个问题是,当我将带有user.save({ Heading: "my new heading });
有效负载的模型保存到我的 web api时,主干模型是完全错误的,因为我的 api 期望将这样的用户对象发送到服务器:
{
"$type": "MvcApplication.Models.Article, MvcApplication",
"Id": "1",
"Heading":"The heading"
}
而不是包裹在里面的真实物体的主干模型。是否有可能解决这样下划线可以处理骨干模型并告诉骨干只发送我的端点期望的有效负载?