从Razor _Layout.cshtml访问Session对象

时间:2010-12-07 20:22:23

标签: asp.net-mvc-3 razor

使用Razor构建MVC 3应用程序,我在Session范围内保留了一些信息,这些信息将在_Layout文件中使用。

我不知道实现这个的最佳方法是什么。其中一些信息用于确定标题中呈现的内容。

我有一个存储在会话范围

中的CurrentUser对象

2 个答案:

答案 0 :(得分:54)

您只需访问布局文件中的HttpContext

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

或者,如果您想要访问用户对象,您只需在页面中创建一个对象并分配它

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

然后在你的代码中......

@user.Name

答案 1 :(得分:3)

更简单的方法是直接在视图中使用Session属性(根本不需要HttpContext.Current.前缀):

@(CurrentUser)Session["CurrentUser"]