我有以下产生错误的方法
非静态字段、方法或属性“”HttpContext.Session“”需要对象引用
namespace Website.Controllers
{
// CONTROLLER CLASS IS HERE BUT REMOVED AS NOT RELEVANT CODE
public static class HtmlExtensions
{
public static decimal GetCartTotal()
{
decimal cartTotal = 0;
var storedData = HttpContext.Session.GetString(ShoppingCartTotal);
if (storedData != null)
{
cartTotal = JsonConvert.DeserializeObject<decimal>(storedData);
}
return cartTotal;
}
}
}显然,我知道我正在从静态方法调用非静态调用,但我不确定如何创建HttpContext.Session对象。当我从视图中调用数据时,我需要该方法是静态的。我不能传递视图模型中的数据,因为数据正在_Layout.cshtml页面上使用,我不想进入并手动将其添加到每个视图模型中,并在每个控制器方法中分配它……在共享视图中调用控制器中的方法的最佳方式是什么?
我在可以工作的视图中有以下内容,但只有当它是静态方法时才有效,因为它是静态方法,所以HttpContext不能工作
@using Website.Controllers
@{
var ShoppingCartTotal = HtmlExtensions.GetCartTotal();
} https://stackoverflow.com/questions/44444009
复制相似问题