ASP.NET MVC 阻止当前请求的视图页面缓存OutputCache

设置缓存

[OutputCache(Duration =333,VaryByCustom ="Index")]

缓存:

//在action中,临时阻止该次请求的视图页面缓存
Response.Cache.SetNoServerCaching();
//可以使得默认的缓存,在规定过期时间内,除第一次访问外,都是304.
Response.Cache.SetOmitVaryStar(true);

主要防范,循环参数来发起请求时,造成的大量无意义的参数生成的垃圾缓存过多,大量占用内存的情况。

页面缓存也可以设置

VaryByParam ="none"

可以达到目的,但也无法做到根据参数生成不同缓存的

[OutputCache(Duration =333,VaryByParam ="none",VaryByCustom ="Index")]

时间: 2024-12-07 01:10:37

ASP.NET MVC 阻止当前请求的视图页面缓存OutputCache的相关文章

asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染

在asp.net mvc 使用ajax请求获取数据的时候,我们一般是返回json或者xml,然后解析这些数据进行渲染,这样会比较麻烦,可以请求一个 分部action,返回一个分部视图 直接可以渲染,不需要解析这一步. 下面是示例: 控制器类: public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } [HttpPost] public Pa

Asp.net MVC 移除不用的视图引擎

Asp.net MVC 默认提供两个视图引擎,分别为: WebFormViewEngine 和 RazorViewEngine.MVC在查找视图时,会按照指定的顺序进行查找.当我们的MVC程序未找到相应视图时,页面中将出现如下错误信息: 由上图可知,它优先执行的是 webform 视图引擎查找,其次才是 razor 视图引擎.而在我们mvc项目中,通常只用到 razor 或 webform 中的一种(大多数都是用的razor).假如我们项目中只用到 razor ,那么在这种情况下,去执行 web

asp.net mvc输出自定义404等错误页面,非302跳转。

朋友问到一个问题,如何输出自定义错误页面,不使用302跳转.当前页面地址不能改变. 还要执行一些代码等,生成一些错误信息,方便用户提交反馈. 500错误,mvc框架已经有现成解决方法: filters.Add(new HandleErrorAttribute()); 404错误目前想到的解决方法: 先上代码 Global.asax: 1 protected void Application_Error(object sender, EventArgs e) 2 { 3 var ex = Serv

ASP.NET MVC Display Mode 移动端视图 配置对微信内置浏览器的识别

最近在捣鼓一个稍微有点low的商城网站,没有计划做app却要求有个wap版,而前端又没有做成响应式,时间WTF,直接利用了asp.net mvc的Display Mode Provider. 使用方式依照上面的链接地址,asp.net mvc application启动的时候会在全局变量 DisplayModeProvider.Instance.Modes 集合中加入 DisplayModeId == "Mobile" 的 IDisplayMode ,因此如果想要在移动端浏览器中展示移

ASP.NET MVC Ajax 伪造请求

1.前言 CSRF(Cross-site request forgery)跨站请求伪造,ASP.NET MVC 应用通过使用AJAX请求来提升用户体验,浏览器开发者工具可以一览众山小,就很容易伪造了请求对应用进行攻击,从而泄露核心数据,导致安全问题.微软自带AntiForgeryToken可以解决,而且语法简单(AJAX请求发起时传递给后台一个字符串,然后在Filter中进行校验) 2.场景如下 为了验证一个来自form post请求,还需要在目标action上增加自定义[AntiForgery

ASP.NET MVC 通信(请求)管道

/*1.BeginRequest 开始处理请求2.AuthenticateRequest 授权验证请求,获取用户授权信息3.PostAuthenticateRequest 获取成功4.AunthorizeRequest 授权,一般来检查用户是否获得权限5.PostAuthorizeRequest 获得授权6.ResolveRequestCache 获取页面缓存结果(如果没有则执行)7.PostResolveRequestCache 已获取缓存8.PostMapRequestHandler 创建页

asp.net mvc下使用Html.Partial嵌套页面(功能同等用户控件)

return View()相关简介 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewResultBase 同时它还有个兄弟PartialViewResult.一个用于返回整体,另一个返回局部(HTML) 使用相关 1.控制器书写:除最后改为 "return PartialView()" 其余无差别 2.视图书写:@Html.Partial() 具有四个重载.根据情况选用 @Html.Partial("CustomerListControl

ASP.NET MVC 3 使用页面缓存 OutputCache 需要注意的问题

项目使用MVC3框架,页面使用缓存来缓解服务器压力,使用缓存配置文件设置CacheProfile <system.web> ...........<!--其他配置节点--> <caching> <outputCacheSettings> <outputCacheProfiles> <add name="index" duration="20" enabled="true" loca

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度. 一.简单一行指令即可实现 <%@ OutputCache VaryByParam="none" Duration="300" %> 这样整个页面就被缓存了,由于我是首页进行的缓存,没有任何参数所以VaryByParam值设置为none,如果希望通过指定的参数来缓存内容可以设置"id;classid"这种形式,或者干脆就用"*",通过所有参数来