2010-12-07 115 views
22

访问会话对象建立与剃刀的MVC 3应用程序,我在将在_layout文件中使用Session范围的一些信息依然存在。从剃刀_Layout.cshml

我不知道,什么是实现这一目标的最佳途径。这些信息中的一部分用于确定报头中的内容。

我已经存储在会话范围CurrentUser对象

回答

52

你可以只访问的HttpContext在布局文件

@HttpContext.Current.Session["Whatever"].ToString() 

,或者,如果你想访问用户对象,你可以只创建一个对象在页面中,并为其分配

@{ CurrentUser user = (CurrentUser)HttpContext.Current.Session["CurrentUser"]; } 

然后后面的代码...

@user.Name 
+0

嘿感谢..这工作,但现在我觉得脏的原因,我不得不添加一个@using指令..是不是有一种方法来在你的_Layout中使用ViewModel? – JBeckton 2010-12-07 21:16:13

3

一个简单的方法是直接使用Session财产的观点做(HttpContext.Current.前缀应该没有必要在所有):

@(CurrentUser)Session["CurrentUser"]