时间:2021-04-16
mvc4中有一个标记属性OutputCache,用来对ActionResult结果进行缓存,如何理解呢?概括地说,就是当你的请求参数没有发生变化时,直接从缓存中取结果,不会再走服务端的Action代码了。
1.[OutputCache(Duration=300)]
//事例代码:
[OutputCache(Duration = 300)]
public ActionResult Index(int? id,string name)
{
var person = new Person { ID = Convert.ToInt16(id), Name = name, City="Beijing"};
return View(person);
}
请求此Action的url可以为: person/Index?id=100&name="bird"。
当第一次请求这个地址时,会执行Index方法,并把结果缓存起来,且过期时间为300秒。
接下来,如果不改变id和name参数的前提下,在距离上次请求300秒内,再来请求这个地址,不会执行Index方法,直接从缓存中拿结果。
当id或者name的参数值发生变化时,发送请求时,会执行index方法,然后再缓存此结果。
[Output(Duration=300)],这种方法没有指明具体针对哪个参数来缓存,所以默认是针对所有参数,即任何一个参数值发生变化,都会缓存一份。
那么,如果,我想指定具体的参数,进行缓存该如何做呢?请看下一个方案。
2.[OutputCache(Duration = 300,VaryByParam="id")]
此种方式,指明了缓存是针对哪个参数来做的,即只有当id参数值发生变化的时候,才做缓存,其他机制同第一种。
3.对于参数中的缓存时间设置,可以在配置文件中进行配置。
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="long" duration="50"/>
<add name="Short" duration="10"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
使用:
[OutputCache(CacheProfile="Short", VaryByParam = "id")]
public ActionResult Index(int? id, string name)
{
var person = new Person { ID = Convert.ToInt16(id), Name = name, City = "Beijing" };
return View(person);
}
如此,便于维护和更改。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文介绍一下ASP.Net中对XML的用法,这里飞刀我只是展现了XML与DataSet相结合的用法。其实ASP.Net对XML的操作的方法与对象是很多的,比如X
本文针对ASP.NET中IsPostBack的用法进行了详细的说明,有助于读者更准确的掌握ASP.NET中IsPostBack的用法。一、IsPostBack介
一、ASP.NETMVC的本地化支持ASP.NETMVC的是基于ASP.NET运行,所以由ASP.NET提供的所有功能,都可以在MVC里使用,例如缓存,会话状态
下面介绍一下asp.net编程中的datatable的用法: DataTabledt=newDataTable();//新建一个DataTable的实例dt
本文实例讲述了ASP.NET中的用法,分享给大家供大家参考。具体如下:在ASP.NET的.aspx页面中,可以在代码标签中通过添加代码。其实,这里的代码和.cs