web-dev-qa-db-fra.com

Accès à un objet Session à partir de Razor _Layout.cshtml

La construction d'une application MVC 3 avec Razor et j'ai des informations persistantes dans la portée de la session qui seront utilisées dans le fichier _Layout.

Je n'ai aucune idée de la meilleure façon de mettre cela en œuvre. Certaines de ces informations sont utilisées pour déterminer ce qui est rendu dans l'en-tête.

J'ai un objet CurrentUser stocké dans la portée de la session

24
JBeckton

Vous pouvez simplement accéder au HttpContext dans le fichier de mise en page

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

ou, si vous souhaitez accéder à l'objet utilisateur, vous pouvez simplement créer un objet dans la page et l'affecter

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

Plus tard dans votre code ...

@user.Name
55
Buildstarted

Un moyen plus simple de le faire consiste à utiliser la propriété Session directement à partir de la vue (HttpContext.Current. le préfixe ne devrait pas du tout être nécessaire):

@(CurrentUser)Session["CurrentUser"]