Ответ 1
Я думаю, что было общее избегание этого вопроса, потому что здесь нет правильного ответа.
Фактически, ваш выбор Архитектура для реализации сложной навигации определит лучшую стратегию Кэширование.
Я глубоко увлекаюсь навигацией через частичные представления с дочерними действиями.
Я согласен с вами в том, что ссылки на файлы больше работают. Я предпочитаю иметь записи базы данных с параметрами навигации, сгруппированными по ключам и ссылающимися на аргументы на дочерние действия.
Итак, ваша таблица навигации может выглядеть так:
grpId Title Path
1 Home Page /
1 About Page /Home/About
1 Reports Page /Reports
2 Home Page /
2 Admin Page /Admin
2 Reports Page /Reports
и ваше дочернее действие примет grpId
[OutputCache(Duration = 60000, VaryByParam = "grpId")]
public PartialViewResult NavigationPage(int grpId)
может вытащить все параметры вашей навигационной группы и отобразить пользовательское меню навигации. Эта форма кэша вывода настраивается по времени (60000 секунд и ваш параметр)
Вывод:
Я подозреваю, что не сказал вам ничего нового, но только подтвердил, к чему вы уже склонялись. Структура MVC очень надежна и предоставляет инструменты для удобного управления тем, что вы хотите сделать. Использование файлов и кэширования данных также является допустимым методом, но это будет больша головка и работа с вашей стороны для реализации.
Имейте в виду: Haacks post старше 4 лет ( MVC 2 Betastrong > ). С тех пор структура и выходной кеш прекрасно развивались. Теперь вы можете использовать Cache Partials, не беспокоясь о кешировании всей страницы. Эта недавняя ссылка на кеширование с MVC 4 не говорит напрямую о проблемах Фила ранее, но особенно пренебрегает ими.