我从服务器返回这个json:
{
"Id": 0,
"Name": ko.observable('New Product'),
"PurchasePrice": 0.0,
"DownPayment": 0.0,
"TotalPayment": 0.0,
"MortgageInsurance": 0.0,
"PurchaseOrRefinance": null,
"Client": null,
"MonthlyCosts": null,
"ClosingCosts": null,
"FirstLien": null,
"SecondLien": null
}
我使用jQuery.getJson
检索它,如下所示:
function addProduct(){
$.getJSON('@Url.Action("GetNewProduct","Product")',function(data){
viewModel.products.push(data);
});
viewModel.productSaved(false);
viewModel.product(products[products.length - 1]);
}
然而,似乎代码永远不会运行。这只发生在我在json中返回函数时,如果我删除了函数,一切运行正常。有办法解决这个问题吗?
答案 0 :(得分:3)
应该是这样的>
返回此
{"Id":0,"Name":'New Product',"PurchasePrice":0.0,"DownPayment":0.0,"TotalPayment":0.0,"MortgageInsurance":0.0,"PurchaseOrRefinance":null,"Client":null,"MonthlyCosts":null,"ClosingCosts":null,"FirstLien":null,"SecondLien":null}
并使其像这样>
function addProduct(){
$.getJSON('@Url.Action("GetNewProduct","Product")',function(data){
data.Name = ko.observable(data.Name);
viewModel.products.push(data);
});
viewModel.productSaved(false);
viewModel.product(products[products.length - 1]);
}
答案 1 :(得分:2)
从
开始解析数据失败{"Name":ko.observable('New Product') }
实际上不是JSON。您只能通过JSON传递字符串/数字/对象等基本数据。 见http://www.json.org/
您可以考虑将dataType设置为'script'来调用jQuery.ajax()。
否则,您需要在回调函数或服务器代码中初始化变量,这甚至可能是更清晰的方法。