2010-12-07 114 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"]