これらは、カートに使用する 2 つのアクション結果です。
ajax を使用して製品 ID をセッション カートに追加する最初のアクション:
public ActionResult AddToCart(int ProductImageId)
{
List<int> cart = (List<int>)Session["cart"];
if (cart == null)
{
cart = new List<int>();
}
cart.Add(ProductImageId);
Session["cart"] = cart;
return new JsonResult() { Data = new { Status = "Success" } };
}
ビューで使用できるように、モデルに入力している 2 番目のアクション:
public ActionResult ShoppingCart()
{
var cart = Session["cart"] as List<int>;
var products = cart != null ? cart.Select(id =>
{
var productImage = repository.GetProductByID(id);
return new ProductsViewModel
{
Name = productImage.Products.Name,
Description = productImage.Products.Description.Substring(0, productImage.Products.Description.IndexOf(".") + 1),
price = productImage.Products.Price,
ProductId = productImage.Products.Id,
Image = productImage.ImageUrl,
ProductImageId = productImage.Id
};
}) : new List<ProductsViewModel>();
return View(products);
}
現在、shoppingcart ビューに商品を表示するビューがあります。
表示されている各製品には、「削除」というボタンがあります。
私の質問は、セッション カートから製品を削除するにはどうすればよいですか?
Actionresult はどのように表示されますか?
誰かが削除ボタンをクリックしたときに削除する必要がある製品の ID を取得する Ajax スクリプトを作成しました。
$(function () {
$(".a").live("click", function () {
var $this = $(this),
ProductImageId = $this.data('ProductImageId');
$.ajax({
url: '/Home/Action', // <- I have not created a actionresult yet
type: "post",
cache: false,
data: { ProductImageId: ProductImageId },
success: function (data) {
data = eval(data);
$this.addClass('productSelected');
},
error: function (result) {
$(".validation-summary-errors").append("<li>Error connecting to server.</li>");
}
});
});
});
受け取った ID で商品を削除したい場合、javascript で正しいと考えている場合、actionresult はどのように表示されますか?
次のようになるはずです。
public ActionResult DeleteProductFromCart(int ProductImageId)
{
// code..
}
私がまだ正しいと思っている場合、括弧内にどのようにコーディングすればよいDeleteProductFromCart
ですか?
どんな種類の助けも大歓迎です。