Array
(
)

Sessão MVC4, Razor

Eduardo Silva
   - 27 jun 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.

Joel Rodrigues
   - 27 jun 2014

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

Marco Cezar
|
MVP
    27 jun 2014

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

Joel Rodrigues
   - 27 jun 2014


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

Eduardo Silva
   - 28 jun 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.

.

Joel Rodrigues
   - 29 jun 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.