【问题标题】:Set Output Cache attribute regarding to condition ASP.net MVC设置关于条件 ASP.net MVC 的输出缓存属性
【发布时间】:2012-06-20 09:55:46
【问题描述】:
我正在使用输出缓存属性来缓存我的页面,
[OutputCache(Duration = 50000)]
public ActionResult GetRidOfZombies()
{
// Code
}
现在的问题是我有两个域运行相同的应用程序 abc.com 和 xyz.com
当任何用户在xyz.com 中看到我的网站时,我想这样做,然后此缓存属性将缩减为[OutputCache(Duration = 50)] .... 我应该怎么做。我在谷歌上搜索了很多,但没有找到任何解决方案。提前致谢 !
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-3
attributes
outputcache
【解决方案1】:
你可以写一个自定义属性:
public class MyDomainAwareOutputCacheAttribute : OutputCacheAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
// TODO: extract the domain from filterContext.HttpContext.Request.Url
// and set the duration accordingly
Duration = 50000;
base.OnResultExecuting(filterContext);
}
}
然后:
[MyDomainAwareOutputCache]
public ActionResult GetRidOfZombies()
{
// Code
}