问题描述
OutputCache 用于缓存单个操作方法:
[OutputCache(Duration = 300,VaryByParam = "None",VaryByCustom = "List-User-Page")]
public override string GetVaryByCustomString(HttpContext context,string arg)
{
if (arg.Equals("List-User-Page",StringComparison.InvariantCultureIgnoreCase))
{
string page = Request.Params["page"] == null ? "1" : Request.Params["page"];
string psize = Request.Params["psize"] == null ? "20" : Request.Params["psize"];
string orderby = Request.Params["orderby"] == null ? "RequirementID" : Request.Params["orderby"];
string sortby = Request.Params["sortby"] == null ? "DESC" : Request.Params["sortby"];
var user = context.User.Identity.Name;
string parameters = user + "-" + page + "-" + psize + "-" + orderby + "-" + sortby;
return parameters;
}
return base.GetVaryByCustomString(context,arg);
}
缓存工作正常,但要求必须通过单击按钮来更新缓存。 utilizing Response.RemoveOutputCacheItem(item) 等解决方案过于宽泛;删除一个页面的条目似乎会删除所有用户的条目。
Alex Yumashev has seemingly found a way to remove all keys,虽然它看起来是一个,如果没有额外的信息,将不得不猜测条目以删除相关的条目。除了前面的数字和/或字母外,具有变体的页面的键似乎相同。
我还查看了建议的解决方案 involving cookies,尽管 a custom provider would be needed;至少在某些原因上是这样。
我是否已经用完了所有开箱即用的功能方法?自定义提供程序是合乎逻辑的下一步吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)