首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在静态方法中使用HttpContext.Session

尝试在静态方法中使用HttpContext.Session
EN

Stack Overflow用户
提问于 2017-06-09 03:24:06
回答 0查看 2.1K关注 0票数 0

我有以下产生错误的方法

非静态字段、方法或属性“”HttpContext.Session“”需要对象引用

代码语言:javascript
复制
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不能工作

代码语言:javascript
复制
@using Website.Controllers

@{
  var ShoppingCartTotal = HtmlExtensions.GetCartTotal();
} 
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44444009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档