我有sales和sales item实体,我正在尝试使用asp.net Core2.0中的return json ()
函数将一些json从控制器返回到前端
下面是我的控制器代码:
[HttpGet]
public JsonResult GetSales(int saleId)
{
SalesModel sales = saleRepository.All().FirstOrDefault(x => x.Id == saleId);
sales.Items = saleItemRepository.All().Where(x => x.SalesId ==
saleId).ToList();
return Json(sales);
}
在前面,使用jQuery ajax get调用:
function getSale(id) {
return $.ajax({
type: 'GET',
url: "/Sales/GetSales",
data: "saleId=" + id
});
}
$.when(getSale(saleId)).then(function (res) {
console.log(res);
}).fail(function (err) {
console.log(err);
});
在控制台上我得到了json,这是无效的:数组结束}]}缺少
{"salesDate":"2018-06-14T00:00:00","saleCode":"1527863276313","notes":"Ok","total":12.31,"status":"Due","discount":0.31,"grandTotal":12.0,"paymentMethod":"Cash","customerId":3,"customerModel":null,"items":[{"name":"hello","price":2.33,"quantity":4,"amount":9.32,"salesId":7
虽然我对salesItem进行了硬编码,但它返回了有效的json,而且看起来还不错
public JsonResult GetSales(int saleId)
{
SalesModel sales = saleRepository.All().FirstOrDefault(x => x.Id == saleId);
SalesItemsModel a = new SalesItemsModel { Name = "abc", Amount = 2.5, Id = 1, IsDelete = false, Price = 2.5, Quantity = 1, SalesId = 5};
sales.Items.Add(a);
return Json(sales);
}
从数据库中获取有效的json时,我会错过什么?同样的代码可以在aspnetmvc 5上完美地运行。
发布于 2018-06-08 06:16:47
尝试像这样更新您的代码:
[HttpGet]
public IActionResult GetSales(int saleId)
{
SalesModel sales = saleRepository.All().FirstOrDefault(x => x.Id == saleId);
sales.Items = saleItemRepository.All().Where(x => x.SalesId ==
saleId).ToList();
return OK(sales);
}
不需要使用Json方法显式转换sales对象。另外,请注意,我已经将返回类型更改为IActionResult
并返回OK
响应。
https://stackoverflow.com/questions/50750305
复制相似问题