8

我想在我的 MVC 站点的每个页面上显示所选项目的计数。我有一个 ViewModel 定义了我想要的属性

public class CartViewModel
{
    public List<CartItem> CartItems { get; set; }
    public decimal CartTotal { get; set; }
}

获取 Cart 的控制器,将其映射到视图模型并将其传递给

public ActionResult GetCartSummary()
{
    var cart = Cart.Instance;
    var viewModel = AutoMapper.Mapper.Map<Cart, CartViewModel>(cart);
    return View(viewModel);
}

以及对此的看法

@model TheWorkshop.Web.Models.Edit.ShoppingCartViewModel

<h2>Cart Summary</h2>
<span>@Model.CartTotal</span>

最后在我的_Layout.cshtml文件中

@Html.Action("GetCartSummary", "Cart")

但这给了我

System.StackOverflowException 未处理

4

2 回答 2

6

尝试将以下内容添加到您的购物车视图中:

@{Layout = null;}
于 2013-04-10T21:30:10.580 回答
3

尝试返回 PartialView 而不是 View:

public ActionResult GetCartSummary()
{
    var cart = Cart.Instance;
    var viewModel = AutoMapper.Mapper.Map<Cart, CartViewModel>(cart);
    return PartialView(viewModel);
}
于 2013-04-10T21:31:40.260 回答