我的$ .getJson方法在我的添加购物车功能项目中调用另一个动作?

时间:2014-10-17 11:59:50

标签: jquery json asp.net-mvc-4

我的观看页面代码是

<form method="post">
        <input id="Submit1" type="submit" value="Deleteallcarts" />
        </form>

<input type="submit" class="product_btn" value="Buy Now" />

<script type="text/javascript">
$("#Submit1").click(function () {
   $.getJSON('@Url.Action("EmptyCart", "home")',
    alert('jhfg'),
    function (data) {
        if (data = "123") {
            alert('Cart is empty');
        }
    }
    )
});

我的控制器操作

 [HttpPost]
    [ActionName("Details")]
    public ActionResult BuyNow(int id)
    {

        return RedirectToAction("Details", "Home");

    }

 public ActionResult EmptyCart()
    {
        System.Web.HttpContext.Current.Application.RemoveAll();
        if (System.Web.HttpContext.Current.Application["cartList"] != null)
        {
        }
        return RedirectToAction("Index", "Home");
    }


public ActionResult Details(int id)
    {

        return View();
    }

每当我在调试模式下单击Deleteallcarts按钮时,它会转到Buynow操作方法... Plz告诉我这些点击事件的解决方案重定向到emptycart操作方法......

1 个答案:

答案 0 :(得分:0)

您有一个带有提交按钮的表单,其默认操作是提交表单。由于您有一个提交表单的ajax请求,因此您需要阻止默认操作

$("#Submit1").click(function (event) {
    //prevent the action of the click which is to submit the form
    event.preventDefault();
    $.getJSON('@Url.Action("EmptyCart", "home")', function (data) {
        if (data = "123") {
            alert('Cart is empty');
        }
    })
});

我建议使用提交事件处理程序而不是单击事件处理程序,如

$("form").submit(function (event) {
    //prevent the action of the click which is to submit the form
    event.preventDefault();
    $.getJSON('@Url.Action("EmptyCart", "home")', function (data) {
        if (data = "123") {
            alert('Cart is empty');
        }
    })
});