从Razor _Layout.cshml访问Session对象

JBe*_*ton 24 razor asp.net-mvc-3

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

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

我有一个存储在Session范围内的CurrentUser对象

Bui*_*ted 55

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

@HttpContext.Current.Session["Whatever"].ToString()
Run Code Online (Sandbox Code Playgroud)

或者,如果要访问用户对象,只需在页面中创建一个对象并进行分配即可

@{ CurrentUser user = (CurrentUser)HttpContext.Current.Session["CurrentUser"]; }
Run Code Online (Sandbox Code Playgroud)

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

@user.Name
Run Code Online (Sandbox Code Playgroud)

  • 如果它会让您感觉更干净,可以将您的命名空间添加到Views\Web.config文件中的默认Razor使用列表中. (4认同)