Мой запрос ajax возвращается с успехом, но данные, похоже, отсутствуют. Я знаю, что сериализация json работает, потому что, если я делаю запрос в базе данных и сериализую его, результаты запроса будут правильно возвращены. В приведенном ниже случае все, что я возвращаю, это «[]».Контроллер не получает запрос ajax
Edit: Я также сделал другие тесты, как попытаться извлечь одну часть данных из itemsInCart
, и это, кажется, совершенно пустой (что оправдывает ответ я получаю).
Модель:
public class ItemInCart
{
[Key]
public int ItemId { get; set; }
public virtual Variety variety { get; set; }
public int Quantity { get; set; }
public virtual InventoryItem inventoryItem { get; set; }
public double Price { get; set; }
public virtual Variety price { get; set; }
}
Контроллер:
[HttpGet]
public ActionResult completeSale(List<ItemInCart> itemsInCart)
{
var json = new JavaScriptSerializer().Serialize(itemsInCart);
return Json(json, JsonRequestBehavior.AllowGet);
}
Ajax:
$.ajax({
type: "GET",
url: "/" + current_controller + "/completeSale", // the method we are calling
contentType: "application/json; charset=utf-8",
dataType: "json",
data: { "itemsInCart": itemsInCart },
success: function (result) {
alert("success " + JSON.stringify(result));
},
error: function (result) {
alert("failed " + result);
}
});
URL запроса (от инструментов разработчика):
http://localhost:52459/Sale/completeSale?itemsInCart=[{"ItemId":1,"Quantity":"1","Price":3.5}]
вы пытались 'Alert ("успех" + result.quantity);'? –
Ваш тип контента не совпадает с данными, которые вы отправляете. '{" itemsInCart ": itemsInCart} - это объект, а не json. Я предлагаю удалить параметр contentType. –
'result.quantity' =>' undefined' – abalter