我想在我的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未处理
答案 0 :(得分:6)
尝试将以下内容添加到购物车视图中:
@{Layout = null;}
答案 1 :(得分:3)
尝试返回部分视图而不是视图:
public ActionResult GetCartSummary()
{
var cart = Cart.Instance;
var viewModel = AutoMapper.Mapper.Map<Cart, CartViewModel>(cart);
return PartialView(viewModel);
}