从基本控制器静态方法中的Session获取字符串

时间:2017-06-26 17:56:01

标签: c# asp.net-mvc

我正在尝试在我的BaseController中编写一个方法,如下所示:

public static string GetMyString()
{
    return HttpContext.Current.Session?["WebStringValue"]?.ToString();
}

如果有值,请给我价值。如果没有返回null。

我的问题是VS和编译器告诉我:

  

非静态字段,方法或属性'Controller.HttpContext'

需要对象引用

我错过了什么?

1 个答案:

答案 0 :(得分:1)

问题是控制器正在定义a non-static HttpContext property。因为您错过了正确的using,编译器会认为您正在尝试调用该属性(而不是the static HttpContext.Current property)。

要修复错误,请使用完整类型名称来调用属性:

return System.Web.HttpContext.Current.Session?["WebStringValue"]?.ToString();