2012-06-27 30 views
6

如何从模型访问会话?如何访问模型asp.net中的会话mvc

我尝试使用:

public IQueryable<EstudentsViewModel> GetEstudentsProjected(decimal? Code) 
     { 
      . 
      . 
      . 
      decimal id; 
      id = (decimal)Session["Consul"]; 
      . 
      . 
      . 
     } 

出现:“会话”的名称在目前情况下

+0

你想在这里完成什么?为什么在会话中存储此值以开始?我想如果你提供这些问题的答案,你会得到一个更好的选择,这将让你不必这样做。 –

回答

23

我如何可以访问会话从模型不存在?

你总是可以执行下列色情:

HttpContext.Current.Session["Consul"] 

但请,哦,我的神圣地球请答应我从来没有执行这样的罪行。

模型永远不应该知道Session是什么。会议是一个网络术语,模型应该是完全不可知的。您应该从可以访问Session的Controller传递Model需要的信息。

于是检查了这一点:

public IQueryable<EstudentsViewModel> GetEstudentsProjected(decimal? Code, decimal id) 
{ 
    ... 
} 

而且从控制器调用此方法时,你会简单地从会议传递的价值,因为控制器访问它。

+1

我知道这是非常旧的帖子,但我们不能通过ISessionManager作为参数吗? ISessionManager只是HttpContext.Current.Session对象周围的一个包装器接口。 –

相关问题