Разобрать все представления для определенного тега - PullRequest
0 голосов
/ 26 ноября 2009

Я использую домашнюю CMS на своем сайте. Тексты в нем используются путем вставки html-помощника в представление:

<%=Html.CmsEntry("About.Title")%>

Записи CMS хранятся в SQLServer. Мне нужен способ сканировать все представления в моем проекте и посмотреть, все ли токены уже есть в базе данных.

Есть ли способ сделать это? Я уже ввожу запись в БД во время выполнения, когда токен не найден, но мне нужен способ сделать это, не посещая каждую страницу. Может быть, с помощью отражения?

1 Ответ

0 голосов
/ 03 марта 2011

Один из способов сделать это - создать страницу (действие контроллера), которая просматривает файлы в поисках «Html.CmsEntry», анализирует имена страниц и затем запрашивает базу данных.

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

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

Кроме того, вы можете сохранить все имена страниц в виде констант или значений перечисления. Если вы использовали перечислимые значения, вы можете легко прокрутить их (используя Enum.GetValues) и проверить, что они находятся в базе данных.

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

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