【问题标题】:MVC get data from controller to view using AJAX what's wrong?MVC 从控制器获取数据以使用 AJAX 查看有什么问题?
【发布时间】:2020-09-18 23:23:40
【问题描述】:

我正在尝试从控制器获取数据以查看并使用 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)" })

【问题讨论】:

  • 分享html,添加到点击和表单,如果你用过
  • @AhmedSunny 再检查一次,我没有添加到购物车的表单,只有一个按钮

标签: javascript jquery ajax asp.net-mvc model-view-controller


【解决方案1】:

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

public JsonResult addtocart(int id)

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

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

例如

data: { "id": productid },

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2018-12-11
    • 2014-11-14
    • 2013-05-08
    • 2018-06-21
    • 2017-09-06
    相关资源
    最近更新 更多