Sessão MVC4, Razor

.NET

27/06/2014

Boa tarde Galera,

Tenho uma sessão que eu verifico no Controller

public ActionResult Pagina () {
if(Session['usuario'] == null)
{

}else{
Usuario usuario = (Usuario)Session['usuario'];
ViewBag.nome = usuario.nome;
}
return View();
}

pra cada ActionResult tenho que fazer isso para exibição no topo!

Essa sessão é exibida no topo (_layout) de todo projeto, tem como eu colocar essa verificação no topo? ou ficaria gambiarra fazer dessa forma?

Abç boa semana a todos.
Eduardo Silva

Eduardo Silva

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

27/06/2014

Já testou colocar isso em uma view parcial e exibir ela no _layout.cshtml?
GOSTEI 0
Marco Cezar

Marco Cezar

27/06/2014

Usa uma ViewBag.Usuario = variavel, e chama ela dps na view.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

27/06/2014

Usa uma ViewBag.Usuario = variavel, e chama ela dps na view.
Mas aparentemente ele já está fazendo isso, não?
GOSTEI 0
Eduardo Silva

Eduardo Silva

27/06/2014

E ai galera obrigado pela ajuda,

O problema de ficar no topo (_layout.cshtml) é que eu tenho q fazer um @model projeto.models.class para poder utilizar a classe relacionada, no caso da recuperação da sessão para o usuário.

else{
---> Usuario usuario = (Usuario)Session['usuario'];
ViewBag.nome = usuario.nome;
}

não daria erro eu ter um @model projeto.models.class só para exibir sessão e um @model projeto.models.class no conteúdo para fazer um cadastro?

Boa semana a todos.



.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

27/06/2014

Rapaz, estou sem VS aqui agora, mas tente criar um projeto novo com autenticação e ver como isso é feito por padrão. Se vocÊ notar, aparece o nome do usuário logado lá no canto superior direito. Eu acho que é com uma view parcial, mas não tenho certeza. Talvez você consiga utilizar o mesmo método.
GOSTEI 0
POSTAR