MVC 从控制器获取数据以使用 AJAX 查看有啥问题?

Posted

技术标签:

【中文标题】MVC 从控制器获取数据以使用 AJAX 查看有啥问题?【英文标题】: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 再检查一次,我没有添加到购物车的表单,只有一个按钮 【参考方案1】:

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

public JsonResult addtocart(int id)

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

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

例如

data:  "id": productid ,

【讨论】:

以上是关于MVC 从控制器获取数据以使用 AJAX 查看有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter 从控制器返回获取数据以通过 Ajax 请求查看

如何使用 Ajax 以数组格式将多个图像从 MVC 视图发送到控制器?

使用 ajax 以 mvc 模式通过控制器发送数据

从 ajax 获取数据到 mvc 动作

MVC如何从视图调用控制器中的动作以返回值

尝试使用 Ajax 调用控制器方法 MVC 获取数据 我的代码已附加