簡體   English   中英

如何使用ASP.net MVC進行Ajax回發

[英]How to make an Ajax Post Back with ASP.net MVC

我對MVC非常陌生。 因此,一直在研究CodePlex中MusicStore Application的代碼。

我無法理解以下代碼的含義:

 // AJAX: /ShoppingCart/RemoveFromCart/5

        [HttpPost]
        public ActionResult RemoveFromCart(int id)
        {
            // Remove the item from the cart
            var cart = ShoppingCart.GetCart(this.HttpContext);

            // Get the name of the album to display confirmation
            string albumName = storeDB.Carts
                .Single(item => item.RecordId == id).Album.Title;

            // Remove from cart
            int itemCount = cart.RemoveFromCart(id);

            // Display the confirmation message
            var results = new ShoppingCartRemoveViewModel
            {
                Message = Server.HtmlEncode(albumName) +
                    " has been removed from your shopping cart.",
                CartTotal = cart.GetTotal(),
                CartCount = cart.GetCount(),
                ItemCount = itemCount,
                DeleteId = id
            };

            return Json(results);
        }

        //
        // GET: /ShoppingCart/CartSummary

        [ChildActionOnly]
        public ActionResult CartSummary()
        {
            var cart = ShoppingCart.GetCart(this.HttpContext);

            ViewData["CartCount"] = cart.GetCount();

            return PartialView("CartSummary");
        }
    }
}

請幫助我澄清一下,該特定的HttpPost是如何作為Ajax Post返回的。

我知道這是一個老問題,但是我在搜索中遇到了這個問題,為了使它起作用,我不得不在Url.Action周圍添加引號。

$.ajax({
      type: "POST",
      url: "@(Url.Action("RemoveFromCart"))",
      data: ({
                Id:1
             }),
      success: success,
      dataType: dataType
    })

嗨,您可以使用jQuery Ajax發出異步回發請求

請參見下面的代碼

$.ajax({
  type: "POST",
  url: @Url.Action("RemoveFromCart"),
  data: ({
            Id:1
         }),
  success: success,
  dataType: dataType
})

[HttpPost] -屬性確保RemoveFromCart操作方法僅接受發布請求

[ChildActionOnly] -屬性確保操作方法只能在視圖中作為子方法調用。 這些通常與局部視圖關聯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM