asp.net mvc меняет одно меню в зависимости от того, какой контроллер выбран из другого меню - PullRequest
0 голосов
/ 08 января 2010

Я предполагаю, что макет сайта будет таким:

верхнее меню навигации, связанное с 4 или 5 индексами различных контроллеров. каждый из этих разделов будет работать с различными объектами модели.

Левое навигационное меню относится к контроллеру. Итак, для каждой из кнопок верхнего меню (соответствующих различным контроллерам) я бы хотел, чтобы в левом меню навигации предлагались параметры, специфичные только для используемого контроллера.

Как лучше всего настроить это?

Спасибо !!

Ответы [ 3 ]

0 голосов
/ 08 января 2010

Похоже, что разные контроллеры - это правильный путь для вашего главного меню, учитывая, что вы заявили, что каждый контроллер будет работать с разными объектами модели (что я понимаю как разные логические подразделения).Имеет смысл разделить логические порции вашей базы данных / моделей на отдельные контроллеры.

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

Вы можете думать о самом StackOverflow как о похожем шаблоне, где в верхней части страницы находятся 5 (или около того) контроллеров, а затем естьдействия на этих контроллерах.Например, у контроллера «users» есть действия для регистрации новой учетной записи, просмотра информации о пользователях, поиска существующих пользователей и т. Д. Это обычная схема на сайтах ASP.NET MVC, которые я видел, и сам ASP.NET MVC являетсяориентированы на сценарии такого типа.

Я не совсем уверен, что есть еще что сказать, но если у вас есть более конкретные вопросы, не стесняйтесь их публиковать.Я думаю, что вы на правильном пути, хотя.Удачи.

0 голосов
/ 10 января 2010

Я использую пользовательский атрибут для этого:

[LeftMenu("MyMenu")]
public class MyController ...

В моем базовом контроллере OnActionExecuted проверяет атрибут и использует отражение для вызова CustomMenus.Get {menuname} () . Затем он устанавливает ViewData ["leftmenu"]. Вы можете избежать пользовательского атрибута, если просто используете имя контроллера в качестве имени меню.

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

0 голосов
/ 08 января 2010

Наличие отдельных главных страниц для представлений для каждого контроллера / категории возможно, когда определенное меню определяется как главная страница.

Являются ли эти меню статичными?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...