Использование одного общего элемента в нескольких частичных представлениях - PullRequest
2 голосов
/ 31 октября 2011

У меня есть базовое приложение ASP.Net MVC 3, которое имеет несколько контроллеров и ряд действий (и последующих просмотров).

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

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

Теперь некоторыестраницы просмотра могут использовать несколько диалоговых окон и, следовательно, включать в себя несколько частичных представлений - что означает наличие нескольких экземпляров элемента «mask».

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

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

Я могу с этим смириться, но я хотел бы знать, есть ли лучший способ справиться с этими видамисценариев?

Быстрая идея, которая пришла в голову, - это какая-то иерархия наследования главных страниц, поэтому я могу иметь DialogMasterPage, который наследует от стандартной текущей главной страницы.Как это звучит для подхода?

Спасибо

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Чтобы сделать что-то вроде этого, где каждый модуль может зарегистрировать свою потребность в определенной вещи на главной странице, вы можете использовать HttpContext, чтобы сохранить флаг, нужно ли вам писать маску div, и просто установить это свойство.в каждом частичном.В конце главной страницы, если установлен флаг, вы можете записать маску div, если для нее установлено значение true.

Очевидно, что для создания этого очистителя вы можете обернуть все в HtmlHelperрасширение или что-то.

0 голосов
/ 31 октября 2011

Вначале я подумал, что вы должны использовать что-то вроде jQuery UI , где он обрабатывает маскирование для вас, или если вы используете что-то нестандартное, вы можете загрузить содержимое для диалога через ajax, а затем показать его в один диалог на главной странице.

...