27/06/2014

Sessão MVC4, Razor

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

Respostas

27/06/2014

Joel Rodrigues

Já testou colocar isso em uma view parcial e exibir ela no _layout.cshtml?
Responder Citar

27/06/2014

Marco Cezar

Usa uma ViewBag.Usuario = variavel, e chama ela dps na view.
Responder Citar

27/06/2014

Joel Rodrigues

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

28/06/2014

Eduardo Silva

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.



.
Responder Citar

29/06/2014

Joel Rodrigues

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.
Responder Citar