为什么我的会话在调用基础时迷失了

时间:2015-04-07 00:36:18

标签: c# asp.net-mvc asp.net-mvc-4 session

当我调用基本方法时,我正在丢失会话,是否有理由获得空会话?

这是我的控制器动作

public class SystemAdminController : BaseController
{
    [HttpPost]
    public ActionResult Index(string removeItems)
    {         
      //Session["storedevices"] <<<< my session data is still avail    
      RemoveItemFromGrid(removeItems); //<<< as soon as I call this method my Session get lost why?     
    }     
 }

public class BaseController : Controller
{
   public void RemoveItemFromGrid(string items)
   {
       //Session["storedevices"] //Session is null/lost here?
       //to do
   }
}

1 个答案:

答案 0 :(得分:0)

你的代码有些奇怪。它应该工作得很好。

有些东西可以帮助您调试:

  • 确保在实际填充Session["storedevices"]属性之前,您没有尝试访问BaseController上的Controller.Session。例如,它在Controller的构造函数中应该为null。它只能在Initialize方法之后才能使用,如果我记得很清楚的话。
  • 确保this.Session == base.Session。出于某种原因,你可能会&#34;新的&#34;后代Controller中的Session属性。只需在那里放一个断点并确保这个表达式为真。
  • 确保后代控制器和基本控制器中的this.Session == System.Web.HttpContext.Current.Session