Asp.net mvc 3 调用不引人注目的“添加到购物车”操作时自动更新购物车摘要

Asp.net mvc 3 调用不引人注目的“添加到购物车”操作时自动更新购物车摘要,asp.net-mvc-3,shopping-cart,Asp.net Mvc 3,Shopping Cart,我有一辆购物车。我还有一个部分视图cartSummary——它是一个简单的部分视图,列出了cart中的所有产品。 我在页面的某个地方单击“添加到购物车”Ajax.ActionLink,它将所选的oofer添加到购物车中,如下所示: public ActionResult AddToCart(Cart cart, string offerId) { OffersServices offersServices = new OffersServices();

我有一辆购物车。我还有一个部分视图cartSummary——它是一个简单的部分视图,列出了cart中的所有产品。 我在页面的某个地方单击“添加到购物车”Ajax.ActionLink,它将所选的oofer添加到购物车中,如下所示:

public ActionResult AddToCart(Cart cart, string offerId)
        {
            OffersServices offersServices = new OffersServices();
            var offer = offersServices.GetOfferDetails(offerId);
            if (offer != null && offer.Count > 0)
            {
                offersServices.GetImagesAndDescriptionForOffer(offer[0]);
                cart.AddOffer(offer[0]);
            }
            return Content("Offer added to the cart");
        }

一切正常,只是购物车摘要没有自我更新。因此,在调用“AddToCart”操作后,应该如何更新购物车摘要?

您可以从操作返回一个局部视图,该视图将指向该局部摘要,并将其传递给所需的模型,以便更新:

return PartialView("Summary", someModelThatTheSummaryPartialExpects);

然后,您将指示Ajax.ActionLink使用
AjaxOptions
UpdateTargetId
属性更新摘要,并将其指向将包含摘要的某个div。现在,当AJAX调用成功时,控制器操作返回的部分将被注入DOM并替换当前摘要。

您可以从操作返回一个部分视图,该视图将指向摘要部分,并将所需模型传递给它,以便它可以更新:

return PartialView("Summary", someModelThatTheSummaryPartialExpects);

然后,您将指示Ajax.ActionLink使用
AjaxOptions
UpdateTargetId
属性更新摘要,并将其指向将包含摘要的某个div。现在,当AJAX调用成功时,控制器操作返回的部分将被注入DOM并替换当前摘要。

我按照您的建议做了—它可以工作,但不是替换一个div,而是第一次将该div追加到购物车中。我回想起我的上一条评论。我的html构造错误。谢谢@Darin DimitrovI按照你的建议做了-它可以工作,但不是替换一个div,而是第一次将该div添加到购物车中。我记得我最后的评论。我的html构造错误。谢谢@Darin Dimitrov