C# HttpContext.Current.Items[";value";]无法工作,因为AngularJS调用创建新会话

C# HttpContext.Current.Items[";value";]无法工作,因为AngularJS调用创建新会话,c#,asp.net-mvc,angularjs,C#,Asp.net Mvc,Angularjs,我正在使用C#、MVC和AngularJS 我的问题是,我的MVC程序创建了一个HttpContext.Current.Items[“value”],并在初始主控制器中设置值,但当我的AngularJS使用ajax调用点击应用程序时,它会创建一个新会话,我无法获得先前在HttpContext.Current.Items[“value”]调用中设置的值 我能做些什么来解决这个问题吗?我想继续使用HttpContext.Current.Items[“value”] 为什么我的AngularJS调用会

我正在使用C#、MVC和AngularJS

我的问题是,我的MVC程序创建了一个
HttpContext.Current.Items[“value”]
,并在初始主控制器中设置值,但当我的AngularJS使用ajax调用点击应用程序时,它会创建一个新会话,我无法获得先前在
HttpContext.Current.Items[“value”]
调用中设置的值

我能做些什么来解决这个问题吗?我想继续使用
HttpContext.Current.Items[“value”]

为什么我的AngularJS调用会创建新的sessionID?我之所以知道这些会话是新的,是因为我使用这些会话时它们具有不同的ID:

String strSessionId = HttpContext.Session.SessionID;

HttpContext.Current.Items
是一个仅用于请求缓存的字典。一旦请求完成,其中的所有值都将超出范围

// Will last until the end of the current request
HttpContext.Current.Items["key"] = value;

// When the request is finished, the value can no longer be retrieved
var value = HttpContext.Current.Items["key"];
HttpContext.Current.Session
是一个在请求之间存储数据的字典

// Will be stored until the user's session expires
HttpContext.Current.Session["key"] = value;

// You can retrieve the value again in the next request, 
// until the session times out.
var value = HttpContext.Current.Session["key"];
您的
HttpRequest.Current.Items
值无法再次使用的原因是,您将其设置为“在您的主控制器中”,这是一个与AJAX调用完全不同的请求

会话状态取决于cookie,因此如果将同一cookie发送回服务器,则可以检索存储在那里的数据。幸运的是,如果您在同一个域上


至于会话ID的更改。所以,为了实际启动会话,您需要显式地在会话状态中存储一些内容。有关更多信息,请参阅。

HttpContext.Current.Items的范围仅为当前请求。HttpContext.Current.Items不应在用户会话上可访问。我想我的问题是我的angularjs调用正在创建新会话,我不知道为什么。