C# 会话变量在向Web API控制器发出请求后重置
我在WebAPI中使用会话,实现了跟踪答案。但是我遇到了会话变量的问题 在业务对象类中,我有一个用于存储更改记录的属性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
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)上看到。
祝你好运