关于专业核心的最受欢迎的书籍之一是亚当·弗里曼的“专业ASP.NET核心3”。
在第7-11章中,他构建了一个示例应用程序SportsStore。

注意右上角的购物车信息:

这通过以下行显示在布局中:
<vc:navigation-menu />参见Views/Shared/_Layout.cshtml第22行。
视图的实现位于:
Views/Shared/Components/CartSummary/Default.cshtml
以及位于以下位置的C#代码:
Components/CartSummaryViewComponent.cs
我知道购物车数据的持久性是通过Startup.cs中的以下行设置的
services.AddScoped<Cart>(obj => SessionCart.GetCart(obj));有关SessionCart的详细信息,请参阅Models/SessionCart.cs。
现在是问题所在。
我已经将以下方法添加到HomeController中
[HttpGet]
public ContentResult CartSize()
{
return new ContentResult()
{
ContentType = "text/html",
StatusCode = (int)HttpStatusCode.OK,
Content = "cart size here"
};
}这是一个非常简单的操作方法,其目的是简单地返回购物车中的商品数量。
鉴于购物车在示例项目中的实现方式,在CartSize方法中获取购物车中物品数量的好方法是什么?
谢谢!
发布于 2020-06-29 01:15:49
将购物车服务注入您的控制器,并在您的操作方法中使用
private Cart cart;
public MyController(Cart cartService) {
cart = cartService;
}
[HttpGet]
public ContentResult CartSize()
{
return new ContentResult()
{
ContentType = "text/html",
StatusCode = (int)HttpStatusCode.OK,
Content = cart.Lines.Count().ToString()
};
}https://stackoverflow.com/questions/62625196
复制相似问题