Я разработчик веб-приложений с ASP.NET MVC 5
в server-side
и AngularJS
на стороне клиента. Навигацию на стороне клиента управляют с помощью модуля UI-Router. На стороне сервера я настроил собственную аутентификацию и авторизацию. Когда я excecute приложение может видеть панель навигации со многими ссылками. В частности, у меня есть ссылка под названием «Обзор», которая перенаправляется на обзор контроллера.Неотслеживаемое кеширование
клиента Код (HTML):
<a ui-sref="Overview">Overview</a>
код клиента для перенаправления (угловой):
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("Home/Index");
$stateProvider
.state("Overview", {
templateUrl: "Home/Overview",
url: "/overview"
})
контроллер код:
[OutputCache(Duration=0, NoStore=true)]
[AllowAnonymous]
public ActionResult Overview()
{
return PartialView();
}
С точки останова в строке "return PartialView()"
к controller
код, я вижу, что controller
возвращает частичный вид, когда I cl ick «обзор» в приложении меню. Но когда я нажимаю второй раз, точка останова не срабатывает. Я думаю, что это проблема кеширования.
Я прочитал, что проблема кеширования может быть сгенерирована: * На стороне сервера. * На стороне клиента. * Даже IIS.
Я пробовал много решений: на стороне сервера я использую attribute [OutputCache]
. Когда я прочитал в моем браузере заголовки HTTP я могу видеть
В стороне клиента я не мог найти решение, чтобы избежать кэширования, но я думаю, что UI-маршрутизатор не должен ничего кэшировать.
В качестве дополнительных мер, я ставлю в моем web.config:
<system.webServer>
<caching enabled="false" enableKernelCache="false" />
</system.webServer>
даже, я создал свой собственный пользовательский ActionFilterAttribute
но не работает.
Я не знаю, что еще делать.
PS: Извините за мой английский
Это не является хорошим решением и имеет собственные проблемы – harishr
@entre я не проверил на вопрос, как правильно, так что вы можете объяснить. Я знаю, что это решение может быть несовместимо с UI-бутстрапом. [Это решение] (http://opensourcesoftwareandme.blogspot.com.es/2014/02/safely-prevent-template-caching-in-angularjs.html), похоже, решает, но не работает для меня. – robBerto
точно .. если есть какой-либо другой плагин, который делает кеширует свои шаблоны, тогда это решение очистит эти шаблоны и сделает эти плагины непригодными .. Чтобы решить проблему кэширования html, вы должны добавить случайную строку запроса в конце ... решение вы упомянули для не кэширования ответов api, а не для статического содержимого – harishr