В настоящее время я собираю многопользовательское веб-приложение с использованием MVC 3. По крайней мере, 30 различных веб-сайтов будут иметь общую кодовую базу, и, хотя они также имеют схожие внутренние функции, они должны выглядеть значительно по-разному. Как следствие, я использую URL-адрес для внутреннего разделения клиентов и переопределенный механизм представления Razor (по крайней мере, с точки зрения поиска представления) для автоматического выбора либо настроенного представления для данного действия, либо представления по умолчанию.
Чтобы помочь «разделить» сложную страницу, любое конкретное представление будет использовать несколько частей, обычно отображаемых как автономные действия, так что, как правило, пользовательское представление или частичное представление будут иметь только небольшие различия HTML, помогая минимизировать любой код, специфичный для сайт клиента.
Я надеюсь, что вы следовали этому фону!
Таким образом, одна HTML-страница может состоять из множества небольших фрагментов частичных представлений HTML, которые могут поступать из определенных папок для клиента или из универсальной версии. Я надеюсь облегчить нашему дизайнеру внесение незначительных изменений на страницу, легко видя, где в структуре папок находится тот фрагмент HTML, который он хочет изменить.
Мое предложение состоит в том, что каждый частичный фрагмент будет заключен в скобки с комментариями HTML, такими как:
{Содержимое частичного}
Очевидно, я мог бы вставить их вручную, но это просто проблема, опечатки, скопированные, а затем измененные версии клиента, которые не обновляются с правильным URL-адресом. Думаю, должно быть возможно получить это из какого-то контекста и внедрить.
В то же время мне нужно иметь возможность не делать этого для определенных действий. Например, партиал может генерировать текст, скажем, внутри текстовой области, поэтому комментарии там неуместны. В целом я буду рад разместить эти комментарии, если я не укажу, что это неуместно.
Для меня это предлагает ActionFilter для действия, который я могу применить ко всему сайту, а затем отключить для определенных действий. Я надеюсь, что одно из переопределяемых событий позволит мне установить этот путь, но я не могу найти его где-нибудь. Кроме того, кажется, что OnResultExecuting срабатывает до того, как был выбран Partial, а OnResultExecuted, по-видимому, уже записал содержимое Partial, поэтому я не могу вставить здесь начальный комментарий. Я также не могу найти ссылку на путь к выбранному фрагменту.
Просто для полноты картины я намерен, чтобы этот атрибут писал эти комментарии только при компиляции в режиме отладки.
Итак, кто-нибудь знает, как я могу получить путь к выбранному представлению без какого-либо взлома между FindPartialView и атрибутом? Является ли мой метод атрибутов лучшим выбором или есть более простой способ сделать это? Возможно, что-то уже встроено!
Большое спасибо за вашу помощь.