C# 使用$http.get()访问会话变量

C# 使用$http.get()访问会话变量,c#,.net,angularjs,multithreading,asynchronous,C#,.net,Angularjs,Multithreading,Asynchronous,我一直在尝试使用angularjs的$http.get()方法从应用程序的Web层使用我在.NET MVC中创建的Api。我正在进行大量的$http.get()调用来调用API端点。当我尝试访问在我的应用程序的应用层中的第一个$http.get()调用上设置的会话数据时,就会出现问题。当我尝试使用另一个$http.get()访问会话数据时,该会话不可用 在角度控制器中,我正在执行以下操作: $http.get(http://localhost:50033/api/HomeController/S

我一直在尝试使用angularjs的
$http.get()
方法从应用程序的Web层使用我在
.NET MVC
中创建的Api。我正在进行大量的
$http.get()
调用来调用API端点。当我尝试访问在我的应用程序的应用层中的第一个
$http.get()
调用上设置的会话数据时,就会出现问题。当我尝试使用另一个
$http.get()
访问会话数据时,该会话不可用

在角度控制器中,我正在执行以下操作:

$http.get(http://localhost:50033/api/HomeController/SetSessionData)
  .then($http.get(http://localhost:50033/api/HomeController/GetSessionData)
  .then(//Do Something with sessiondata))
在主控制器中,我正在执行以下操作:

    [HttpGet]        
    public IHttpActionResult SetSession()
    {
       HttpContext.Current.Session["Data"]=//Some Data being fetched fromDB;
       return //Data from DB as Json
    }

    [HttpGet]      
    public IHttpActionResult GetSession()
    {
      if( HttpContext.Current.Session["Data"]!=null)//I am getting Null here even though I set it in the SetSession call.
      {
         return Json(HttpContext.Current.Session["Data"]);
        }
    }

`

看起来您的JavaScript格式不正确;控制器代码是从您的实际源代码复制的,还是您在此处键入的?如果它被复制,那么您可能会丢失一些“引号”标记和
function()
声明,如果JavaScript控制台显示错误,我也不会感到惊讶。如果你只是在这里输入,你可能想修改它,使它更接近你的实际代码,让其他人更容易回答。我认为你做得不对。请注意,这将消除与问题无关的任何问题。如果您的问题与编译器错误无关,请确保没有编译时错误。