首页 > 解决方案 > MVC 从控制器获取数据以使用 AJAX 查看有什么问题?

问题描述

我正在尝试从控制器获取数据以查看并使用 ajax 接收它,这是我的操作:

public JsonResult addtocart(int id)
    {
        var Product = db.Product.SingleOrDefault(c => c.id == id);
        var Cart = new Cart();

        ProductCart pc = new ProductCart()
        {

            Product = Product,
            Cart = Cart

        };
        pc.Cart.added_at = DateTime.Now;

        pc.Cart.product_id = pc.Product.id;
        db.Cart.Add(pc.Cart);
        db.SaveChanges();
        return Json(pc.Product, JsonRequestBehavior.AllowGet);
    }

当我为其中一个产品按下“添加到购物车”按钮并且我想将其添加到包含一个表的模式时,它的类是“myjxT”,这是我的 ajax:

$('.addtocart').click(function () {
        var name = $(".item-name").text();
        var price = $(".item-price").text();
        $.ajax({
            method :'GET',
            url: "/Product/addtocart",
            dataType: JSON,
            cache: false,
            data: { "Name": name, "Price": price },
            success: function (data) {
                var content = "";
                for (var x in data) {
                    content = "<tr><td>" + data[x].Name + "</td><td>" + data[x].Price + "</td></tr>"

                }
                $(".myjxT").html(content);

            },
            error: function (msg) {
                alert("something wrong");
            }

        });

    });

但是当我单击“添加到购物车”时它什么也不做,它会将我引导到这个 url:“Product/addtocart/35”,其中 35 是产品 ID,并且页面包含产品的 json 对象:

{"Category":{"id":11,"name":"kikii","number_of_products":3},"id":35,"name":"Samsung Galaxy M31","price":8000,"image":"Samsung Galaxy M31.jpg","description":"t is a long established ","CategoryId":11}

这是foreach循环内的“添加到购物车”按钮:

 @Html.ActionLink("Add to cart", "addtocart", new { id = item.id }, new { @class = "btn btn-danger addtocart", @style = "width:90px;background-color:rgb(60, 60, 60)" })

标签: javascriptjqueryajaxasp.net-mvcmodel-view-controller

解决方案


您收到 AJAX 错误的原因是您的控制器方法中的参数与您在 AJAX 调用中的参数不匹配。

public JsonResult addtocart(int id)

data: { "Name": name, "Price": price },

您需要在 AJAX 调用中传递产品 ID。

例如

data: { "id": productid },

推荐阅读