C# 会话变量在向Web API控制器发出请求后重置

C# 会话变量在向Web API控制器发出请求后重置,c#,asp.net,session,asp.net-web-api,C#,Asp.net,Session,Asp.net Web Api,我在WebAPI中使用会话,实现了跟踪答案。但是我遇到了会话变量的问题 在业务对象类中,我有一个用于存储更改记录的属性 public class BaseBO { protected HttpSessionState _session; public BaseBO() { _session = HttpContext.Current.Session; } private IList<FundInvestor> _investors; publi

我在WebAPI中使用会话,实现了跟踪答案。但是我遇到了会话变量的问题

在业务对象类中,我有一个用于存储更改记录的属性

public class BaseBO
{
  protected HttpSessionState _session;

  public BaseBO()
  {
      _session = HttpContext.Current.Session;
  }

  private IList<FundInvestor> _investors;
  public  IList<FundInvestor> Investors
  {
    get
    {
        _investors = (IList<FundInvestor>)_session["_investors"];
        if (_investors == null)
        {
            _investors = new List<FundInvestor>();
            _session["_investors"] = _investors;
        }
        return _investors;
    }
    set
    {
        _investors = value;
        _session["_investors"] = value;
    }
  } 
}
公共类BaseBO
{
受保护的HttpSessionState_会话;
公共BaseBO()
{
_session=HttpContext.Current.session;
}
私人投资者;
公共投资者
{
得到
{
_投资者=(IList)_session[“投资者”];
如果(_=null)
{
_投资者=新名单();
_会议[“_投资者”]=_投资者;
}
投资者回报;
}
设置
{
_投资者=价值;
_时段[“_投资者”]=价值;
}
} 
}
在客户端,保存表单时,我向服务器发出两个请求。首先,我使用更改记录列表调用BaseBO实例的方法
AddInvestorQueue
。更改的记录将添加到
BaseBO的
Investors
列表中。 第二个请求,我调用方法
Edit
,在该方法中,我将获取列表
Investor
的元素,并将这些记录更新到数据库中

我的问题是,当我调用第二个请求时,列表
Investors
没有任何元素。请注意,在第一个请求中,
Investors
中添加了记录。我不知道为什么那个列表会被重置

使用ASP.NET Web窗体时不会出现此问题


有没有人遇到过类似的问题?我被这个问题困住了。任何建议对我都很有帮助。非常感谢。

web api中的会话是无状态的。 我将为您提供基于令牌的身份验证,您可以在(WebAPI+angular)上看到。 祝你好运