当我尝试在jquery中调用一个动作时,mvc ajax不起作用

时间:2016-01-24 00:04:56

标签: jquery ajax model-view-controller

我想使用ajax将数量信息和产品ID发送到控制器。点击addtocart按钮后没有任何反应,页面没有刷新。我手动刷新了页面,并看到请求的数量已成功添加到购物车。为什么页面不会自动刷新? 你能帮我解决一下这里有什么问题吗?

<script>  
    $("#addtocart").click(function () {

        alert("tıklandı");
        var val1;
        var val2;
        val1 = $(".cart_quantity_input").val();
        val2 = $(".product-name-text").attr("id");
        alert("değerler alındı");
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/Home/AddToCart/",
            data: { id: val2, quantity: val1 },
            success: function (Data) {
                alert("ajak içindeyiz");
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {

            }
        });
        alert("ajak bitti");
    });

</script>

1 个答案:

答案 0 :(得分:0)

您正在使用Ajax函数发送数据。我通常会专门使用Ajax来避免刷新页面。如果您想刷新页面,那么您应该使用带有提交按钮的表单来代替控制器。

但是,我希望您的成功函数未被命中的问题是因为您将数据类型指定为json。这告诉Ajax函数,json数据是双向的,所以你的控制器动作应该返回json。作为猜测,它看起来更像是:

public ActionResult AddToCart(int id, int quantity)
{
    // blah blah blah
    return View();
}

如果是这种情况,那么从ajax调用中删除datatype参数,然后它应该点击成功函数。

但您应该从操作中返回json或ContentResult,然后添加逻辑以根据结果更新购物车显示。如果要刷新整个页面,请使用表单并提交数据。