ASP.NET 4.6 MVC Кэширование вывода с ошибками синтаксиса Razor - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть проект ASP.NET 4.6, в котором используются контроллеры MVC, которые возвращают мои представления, и контроллеры WebAPI, которые возвращают данные.

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

[OutputCache(CacheProfile = "PageCache")]
public ActionResult Home()
{
     return View("~/Views/Home/Index.cshtml");
}

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

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

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Вы можете использовать атрибуты VaryByCustom или VaryByParam.Следующий код представляет собой кэш на основе параметра 'id'.

    [OutputCache(Duration = int.MaxValue, VaryByParam = "id")]
    public ActionResult Details(int id)
    {
        ViewData.Model = _dataContext.Movies.SingleOrDefault(m => m.Id == id);
        return View();
    }

Вы также можете создать профиль кэша также в файле web.config

<caching>
<outputCacheSettings>
    <outputCacheProfiles>
        <add name="Cache1Hour" duration="3600" varyByParam="none"/>
    </outputCacheProfiles>
</outputCacheSettings>
</caching>

Для получения дополнительной информации проверьте это Ссылка

0 голосов
/ 12 декабря 2018

Вы не должны кэшировать информацию пользователя на сервере, она должна кэшироваться на клиенте.

Пожалуйста, посмотрите на этот документ.

https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing/improving-performance-with-output-caching-cs

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