第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用屬性阻止ASP.NET MVC中的緩存以執(zhí)行特定操作

使用屬性阻止ASP.NET MVC中的緩存以執(zhí)行特定操作

LEATH 2019-07-26 11:42:30
使用屬性阻止ASP.NET MVC中的緩存以執(zhí)行特定操作我有一個ASP.NET MVC 3應(yīng)用程序。此應(yīng)用程序通過JQuery請求記錄。JQuery回調(diào)一個以JSON格式返回結(jié)果的控制器動作。我無法證明這一點(diǎn),但我擔(dān)心我的數(shù)據(jù)可能會被緩存。我只希望將緩存應(yīng)用于特定操作,而不是所有操作。是否有一個屬性可以放在一個動作上以確保數(shù)據(jù)不會被緩存?如果沒有,我如何確保瀏覽器每次都獲得一組新記錄而不是緩存集?
查看完整描述

3 回答

?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個贊

要確保JQuery不緩存結(jié)果,請?jiān)赼jax方法上添加以下內(nèi)容:

$.ajax({
    cache: false
    //rest of your ajax setup});

或者為了防止MVC中的緩存,我們創(chuàng)建了自己的屬性,你也可以這樣做。這是我們的代碼:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]public sealed class NoCacheAttribute : ActionFilterAttribute{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        filterContext.HttpContext.Response.Cache.SetNoStore();

        base.OnResultExecuting(filterContext);
    }}

然后用你的控制器裝飾[NoCache]?;蛘邽樗心憧梢园褜傩苑旁谀憷^承你的控制器的基類的類(如果你有的話),就像我們在這里:

[NoCache]public class ControllerBase : Controller, IControllerBase

如果您需要它們是不可緩存的,而不是裝飾整個控制器,您還可以使用此屬性修飾某些操作。

如果您的類或操作NoCache在瀏覽器中呈現(xiàn)時沒有,并且您想檢查它是否正常工作,請記住在編譯更改后,您需要在瀏覽器中執(zhí)行“硬刷新”(Ctrl + F5)。在您執(zhí)行此操作之前,您的瀏覽器將保留舊的緩存版本,并且不會使用“正常刷新”(F5)刷新它。


查看完整回答
反對 回復(fù) 2019-07-26
  • 3 回答
  • 0 關(guān)注
  • 526 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號