对于我的博客,我想使用输出缓存来保存一个特定帖子的缓存版本大约10分钟,这很好......
<%@OutputCache Duration="600" VaryByParam="*" %>
Run Code Online (Sandbox Code Playgroud)
但是,如果有人发表评论,我想清除缓存,以便刷新页面并查看评论.
我如何在ASP.Net C#中做到这一点?
有没有办法以编程方式使ASP.NET MVC输出缓存的部分无效?我希望能够做的是,如果用户发布的数据更改了从缓存操作返回的内容,则能够使缓存的数据无效.
这甚至可能吗?
我在我的webuser控件(.ascx)上使用OutputCache
<%@ OutputCache Duration="1000" VaryByParam="none" %>
Run Code Online (Sandbox Code Playgroud)
我想在接下来的1000秒内保留缓存,但是当我的网站上的特定页面被加载时,我想删除/刷新/刷新缓存.就像,我想在加载MyPage.aspx时清除缓存.我可以在程序上刷新缓存吗?
它只有一个页面是缓存,因此没有用于刷新缓存的paramatrized版本.
感谢您的帮助.
我在ASP.NET MVC中有一个多租户应用程序.将要提供的应用程序实例仅仅是主机名的功能(我认为这与stackexchange一致).
应用程序的每个实例可能具有不同的文化设置(甚至"自动",以阅读浏览器的语言并尝试使用它),并将相应地进行本地化.
在这种情况下,我想对我的一些操作做一些输出缓存.所以,我的问题是:
如果输出完全取决于主机名(即忽略本地化要求),那么实现多租户ASP.NET MVC应用程序的输出缓存有哪些可能性?
与(1)相同,但现在考虑输出还取决于培养设置?
与(2)相同,但考虑到输出可能随传递给动作的参数而变化?
在这种情况下,我正在考虑所有站点都从一个IIS网站运行.
如何清除指定控制器中的缓存?
我尝试使用几种方法:
Response.RemoveOutputCacheItem();
Response.Cache.SetExpires(DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
没有任何影响,它不起作用.:(可能存在任何方式获取控制器缓存中的所有键并明确删除它们?在哪个重写的方法我应该执行清除缓存?以及如何做到这一点?
有什么想法吗?
我正在学习 ASP.Net MVC 5 教程,并了解了缓存。但我无法理解是什么决定了我应该在客户端还是服务器上缓存。
这是代码片段。
对于客户:
[OutputCache(Duration = 86400, Location = OutputCacheLocation.Client)]
public ActionResult SelectLocation()
{
}
Run Code Online (Sandbox Code Playgroud)
对于服务器:
[OutputCache(Duration = 86400, Location = OutputCacheLocation.Server)]
public ActionResult SelectLocation()
{
}
Run Code Online (Sandbox Code Playgroud)
问题:有人可以告诉我什么时候应该应用客户端缓存以及什么时候应该使用服务器缓存。我应该寻找的缺点或任何后果?
我正在使用OutputCache属性在服务器端缓存我的动作的html输出.
很好,它可以工作,但现在我的情况是内容很少变化,但是当它发生时,用户在下一个请求中看到新数据至关重要.
那么,有没有办法以编程方式中止页面缓存持续时间?