Получить объект json с помощью ajax asp.net mvc

77
9

У меня есть модель. Я использовал его для веб-формы. Но я новичок в asp.net mvc. Немного знаний по этому вопросу. Я хочу, чтобы ты помог мне с этим. Мне нужно получить данные с помощью ajax. Пожалуйста, помогите мне.

public class BasketModel
{

public int id { get; set; }
public int name { get; set; }
public int summary { get; set; }
public int price { get; set; }
public int quantity { get; set; }
public int image { get; set; }

}

Я использовал свою модель на контроллере. И перешел в json. и вернулся.

public JsonResult Test()
{
BasketModel basket = new BasketModel
{
id = 1,
name = 1,
image = 1,
price = 1,
quantity = 1,
summary = 1
};
var jsonSerializer = new JavaScriptSerializer();
var jsonbasket = jsonSerializer.Serialize(basket);

return Json(jsonbasket,JsonRequestBehavior.AllowGet);
}

Я хочу, чтобы объект script был следующим: index.cshtml

 $('.my-cart-btn').myCart({
showCheckoutModal: true,
cartItems : {
"id":1,
"name":1,
"summary":1,
"price":1,
"quantity":1,
"image":1
}
}),

Я хочу сделать это с помощью ajax, как показано ниже.

                 cartItems :
$.ajax({
type: 'POST',
dataType: 'json',
url: '/Product/Test',
success: function (data) {
alert(data);
} ,
data: JSON.stringify(data),
error: function(jqXHR, textStatus, errorThrown) {
alert('Error - ' + errorThrown);
}
}),

спросил(а) 2021-01-25T19:44:00+03:00 5 месяцев назад
1
Решение
64

Похоже, вы излишне сериализуете его. Метод Json способен отправить объект как JSON обратно клиенту.

public JsonResult Test()
{
var basket = new BasketModel
{
id = 1,
name = 1,
image = 1,
price = 1,
quantity = 1,
summary = 1
};
return Json(basket,JsonRequestBehavior.AllowGet);
}

Последние версии MVC используют сериализатор Newtonsoft Json.NET за экраном. Документация msdn JavaScriptSerializer также рекомендует использовать JSON.NET

Теперь в вашем success событии вы можете использовать объект JSON по мере необходимости.

success: function (data) {
$('.my-cart-btn').myCart({
showCheckoutModal: true,
cartItems : data
});
} ,

ответил(а) 2021-01-25T19:44:00+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема