禁用特殊链接的输出缓存

时间:2018-11-26 12:39:38

标签: c# asp.net asp.net-mvc iis

我有一个大型的电子商务ASP.NET MVC项目。我将输出缓存用于缓存系统,但是我需要为特殊链接关闭输出缓存。我知道我可以用单独的动作来做,但是我不想使用其他动作。我需要以相同的操作将其关闭。

感谢您的解决方案。

public string GetCulture() => $"CurrentCulture:{CultureInfo.CurrentCulture.Name}, CurrentUICulture:{CultureInfo.CurrentUICulture.Name}";

1 个答案:

答案 0 :(得分:0)

也许尝试使用OutputCache属性的自定义实现

    [AttributeUsage(AttributeTargets.Method,
        AllowMultiple = false, Inherited = false)]
public class OutputCacheVary : OutputCacheAttribute
{
    public OutputCacheVary()
    {

    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        string paramText = filterContext.ActionParameters["sefLink"].ToString();

        if (paramText == "blablabla.html")
        {
            NoStore = true;
        }
        else
        {
            Duration = 3600;
            VaryByCustom = "none";
        }
    }
}