Вопрос

Я использую фреймворк asp.net MVC.В моем приложении пользователь должен войти в систему.И когда комбинация имени пользователя и пароля верна, div (или панель?) с меню в нем должен стать видимым.Но как я могу это сделать?Когда имя моей панели pnlMenu, в моем контроллере я не могу сделать что-то вроде:

pnlMenu.visible = true;

Итак, как мне это сделать?

Это было полезно?

Решение

Что вам следует сделать, так это проверить свой контроллер, чтобы узнать, вошел ли пользователь в систему, и установить значение в ViewData следующим образом:

ViewData["IsLoggedIn"] = true;

Затем, по вашему мнению, вы можете установить видимость метода на основе этого значения.Таким образом, если вы измените представление позже или решите создать несколько представлений, каждое из них сможет использовать это значение, и между вашим представлением и контроллером не будет никакой связи.

Другие советы

Создайте метод или свойство в своем представлении, которое позволит вам скрывать или показывать соответствующие элементы управления?

Затем в вашем контроллере вы можете получить доступ к этому свойству или методу вашего представления, не так ли?

Вы не хотите ссылаться на определенные «элементы управления» в своем представлении в своем контроллере, поскольку одна из идей MVC заключается в том, что вы можете просто заменить пользовательский интерфейс другой реализацией (web/win/...) и использовать те же контроллеры и логика приложения.Затем вы просто хотите описать операцию, которую должно поддерживать ваше представление, поэтому в интерфейсе, описывающем «контракт», который должно поддерживать ваше представление, вы должны создать метод, который называется, например, «ChangeState( bool loggedIn )».

В контроллере вы можете вызвать этот метод, когда пользователь вошел в систему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top