0

У меня есть меню, и я использовал файл cookie, чтобы настроить меню, выбранное обновлением. Меню является общим для всех классов, поэтому я помещаю его в _layout.cshtml, но в то же время я хочу, чтобы контроллер для этого макета, потому что есть некоторая функция, чтобы настроить меню как выделение. Могу ли я создать контроллер для этого?Могу ли я создать контроллер для компоновки в asp.net mvc4?

ответ

2

Да, вы можете позвонить @Html.Action или @Hmtl.RenderAction, чтобы вызвать контроллер с точки зрения. Но это ограничивает смешение проблем, так как теперь ваш взгляд активно вызывает ваш контроллер.

Лучшим подходом часто является передача соответствующих данных в представление как часть вашей модели представления.

Но в то же время я хочу контроллер для этой схемы, потому что некоторые функции для настройки меню в качестве подсветки.

Если вы делаете что-то основное, например, выделяя текущую страницу, может быть более простое решение. Вы можете поместить текущий идентификатор страницы в ViewBag и получить это значение в своем основном файле _Layout и использовать его для выбора соответствующего элемента.

+0

здесь не используем сумка для просмотра. – Niths

+0

Хорошо, тогда один из других вариантов, которые я предоставил, должен работать. Я часто не использую ViewBag, но это хорошо для небольших фрагментов данных, подобных этому. –

+0

Мне нужно, чтобы я установил файл cookie, я должен установить его как выбранный, но когда я помещаю этот URL-адрес в новую вкладку, он принимает старый файл cookie. – Niths

0

Частичное действие может быть, что вы ищете здесь - this article may be some help. Он относится к MVC2, но принципы остаются неизменными.

0

создайте действие для меню и поместите меню ui в представление, а затем вызовите Html.Action («название действия меню», «имя управляющего элемента») на странице макета.