C# Обработка графического интерфейса в MVC
-
09-09-2019 - |
Вопрос
Я использую фреймворк asp.net MVC.В моем приложении пользователь должен войти в систему.И когда комбинация имени пользователя и пароля верна, div (или панель?) с меню в нем должен стать видимым.Но как я могу это сделать?Когда имя моей панели pnlMenu, в моем контроллере я не могу сделать что-то вроде:
pnlMenu.visible = true;
Итак, как мне это сделать?
Решение
Что вам следует сделать, так это проверить свой контроллер, чтобы узнать, вошел ли пользователь в систему, и установить значение в ViewData следующим образом:
ViewData["IsLoggedIn"] = true;
Затем, по вашему мнению, вы можете установить видимость метода на основе этого значения.Таким образом, если вы измените представление позже или решите создать несколько представлений, каждое из них сможет использовать это значение, и между вашим представлением и контроллером не будет никакой связи.
Другие советы
Создайте метод или свойство в своем представлении, которое позволит вам скрывать или показывать соответствующие элементы управления?
Затем в вашем контроллере вы можете получить доступ к этому свойству или методу вашего представления, не так ли?
Вы не хотите ссылаться на определенные «элементы управления» в своем представлении в своем контроллере, поскольку одна из идей MVC заключается в том, что вы можете просто заменить пользовательский интерфейс другой реализацией (web/win/...) и использовать те же контроллеры и логика приложения.Затем вы просто хотите описать операцию, которую должно поддерживать ваше представление, поэтому в интерфейсе, описывающем «контракт», который должно поддерживать ваше представление, вы должны создать метод, который называется, например, «ChangeState( bool loggedIn )».
В контроллере вы можете вызвать этот метод, когда пользователь вошел в систему.