Pergunta
Eu estou usando o asp.net MVC Framework. No meu aplicativo o usuário tem que entrar. E quando a combinação de nome de usuário e senha está correta, o div (ou painel?) Com com o menu na mesma, deve tornar-se visível. Mas como posso fazer isso? Quando um nome de meu painel pnlMenu, no meu controlador eu não posso fazer algo como:
pnlMenu.visible = true;
Então, como é que eu tenho que fazer isso?
Solução
O que você deve fazer é na sua seleção Controlador para ver se um usuário está conectado e defina um valor na ViewData como esta:
ViewData["IsLoggedIn"] = true;
Então, na sua opinião, você pode definir a visibilidade do método com base neste valor. Dessa forma, se você alterar a vista mais tarde, ou decidir ter vários pontos de vista, eles podem cada uso este valor e não há qualquer ligação entre a sua visão e seu controlador.
Outras dicas
Criar um método ou propriedade em seu View que permite ocultar ou mostrar os controles apropriados?
Em seguida, em seu controller você pode acessar essa propriedade ou método de sua opinião, não pode?
Você não quer específica de referência 'controles' no seu Ver em seu controlador, uma vez que, uma das idéias de MVC é que você pode simplesmente substituir a UI com outra aplicação (web / win / ...) e fazer usar dos mesmos controladores e lógica da aplicação. Então, você quer apenas para descrever uma operação que a sua visão deve apoiar, assim, na interface, que descreve o 'contrato' que a sua exibição deve suportar, você deve criar um método que é chamado de 'ChangeState (bool LoggedIn)', por exemplo.
No controlador, você pode chamar esse método quando o usuário logado.