2010-12-07 5 views
22

Razor로 MVC 3 응용 프로그램을 빌드하고 _Layout 파일에서 사용할 세션 범위에 일부 정보가 유지되었습니다.Razor _Layout.cshml에서 세션 개체 액세스

나는 이것을 구현하는 가장 좋은 방법이 무엇인지에 대한 단서가 없습니다. 이 정보 중 일부는 머리글에서 렌더링되는 내용을 결정하는 데 사용됩니다.

나는 방금 객체를 생성 할 수있는 사용자 개체에 액세스하려면

답변

52

당신은 그냥 레이아웃 파일

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

의 HttpContext에 액세스하거나 수있는 세션 범위에 저장되어있는 CurrentUser 개체가 해당 페이지에 ... 나중에 코드에서 그 다음

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

를 할당

+0

감사 이봐 .. 작동하지만 지금 내가해야했다 오염 원인을 느낀다 @using 지시어를 추가하십시오. 거기에 ViewModel을 _Layout에 사용하는 방법이 없습니까? – JBeckton

+4

더 깨끗하게 느껴지려면 Views \ Web.config 파일의 Razor using의 기본 목록에 네임 스페이스를 추가 할 수 있습니다. – marcind

+1

뷰 모델에 대한 공통 기본 클래스로이를 마무리 할 수도 있습니다. _Layout 페이지에서 기본 클래스를 사용할 수 있다고 생각합니다. –

3

는보기에서 직접 Session 속성을 사용 할 수있는 쉬운 방법 (HttpContext.Current. 접두사는 전혀 필요는 없습니다) :

@(CurrentUser)Session["CurrentUser"]