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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top