我已经编写了一个继承自System.Web.UI.WebControls.DropDownList的控件,因此该控件的前面没有任何代码,但是我仍然想设置OutputCache指令。 我有什么方法可以在C#代码中进行设置,例如使用属性还是类似的名称?

我特别希望能够复制VaryByParam属性

===============>>#1 票数:2 已采纳

我意识到这是一个令人难以置信的古老问题,但仍然值得回答。

您所说的不是用户控件,而是自定义控件。 您想要使用OutputCache进行的操作可以简单地通过上下文缓存来完成。

在获取数据并绑定到DropDownList的代码中,执行以下操作:

        List<Object> listOfObjects = null;
//assuming a List of Objects... it doesn't matter whatever type of data you use
        if (Context.Cache["MyDataCacheKey"] == null)
        {
            // data not cached, load it from database
            listOfObjects = GetDataFromDB();
//add your data to the context cache with a sliding expiration of 10 minutes.
            Context.Cache.Add("MyDataCacheKey", listOfObjects, null,
                System.Web.Caching.Cache.NoAbsoluteExpiration,
                TimeSpan.FromMinutes(10.0),
                System.Web.Caching.CacheItemPriority.Normal, null);
        }
        else
            listOfObjects = (List<Object>)Context.Cache["MyDataCacheKey"];

        DropDownList1.DataSource = listOfObjects;
        DropDownList1.DataBind();

===============>>#2 票数:1

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Server);
Response.Cache.SetValidUntilExpires(true);

  ask by Glenn Slaven translate from so

未解决问题?本站智能推荐:

1回复

页面的输出缓存因多个DropDownList控件而异

有没有一种方法可以对因多个DropDownList控件而异的页面使用输出缓存? 我考虑过使用Cache变量来缓存页面的几个元素,并根据我从代码隐藏DDL中获得的值读取它们。 但是问题是我不希望将数据缓存为“ Forerver”,也不想更改整个站点的默认缓存持续时间。 我知道对于ou
8回复

ASP.net如何在控件公共属性上输出缓存webusercontrol

我有一个Web用户控件,它提供一些潜在的密集数据计算,我希望它被输出缓存,以便每个页面视图不会重新计算数据。 它驻留在经常查看的页面上,因此我认为它正常工作非常重要! 对于上下文,它在我们的街机上使用: http : //www.scirra.com/arcade/action/93/8
2回复

ASP.NET图表和用户控件输出缓存

我在用户控件中使用新的asp.net图表控件。 我试图使用输出缓存指令缓存用户控件30秒。 缓存是自定义的,具体取决于登录用户。 控件缓存时图表数据正在丢失。 我每30秒看一次图表,但中间没有任何一点。 我错过了asp.net图表控件的一些缓存选项吗? 谢谢, 马丁。
2回复

输出缓存-仍然可行吗?

我在Googling上有很多答案可以解决,但是却找不到能满足这个问题的答案。 我正在将C#与Web表单一起使用。 我有很多机会可以缓存页面,例如“隐私”,“条款”等,因为它们几乎没有变化。 但是,我不确定与输出缓存结合使用javascript的效果。 我了解片段缓存,甜甜圈缓存等
1回复

Google无法抓取源自自定义outputcache的生成的CSS和JS路径

我已经为我的网站设置了自定义Outputcache。 一切都按预期工作,我可以看到带有二进制文件的缓存文件夹。 当我访问该网站时,我得到了缓存的页面,并按应有的方式呈现。 问题是,当我尝试使用Google网站管理员工具渲染页面时,Google无法访问在BundleConfig〜 ~/b
2回复

输出缓存,VaryByParam / VaryByCustom

是的,赞美输出缓存的文章数量似乎无止境,它能加快您的网站的速度。 我现在已经阅读了数百篇有关该主题的文章和问答,但似乎仍然无法使它起作用。 (我认为输出缓存可能正在窃取我的灵魂) 我的要求非常简单,我有3个页面要根据以下参数进行缓存:主页,结果和详细信息。 我在页面的一小部分也需要根
1回复

有没有一种方法可以为ASP.NET实现这种特定类型的输出缓存?

我想在页面生命周期之前运行自定义逻辑,以确定我要为用户提供的缓存页面的版本。 例: 如果未登录用户,那么我将转到缓存字典,捕获页面的版本A并提供给用户。 否则,如果已记录,则将查看是否已经缓存了该用户特定的页面版本。 如果尚不存在特定的缓存版本,则让其生命周期完成,然后将其保
1回复

根据数据库中找到的日期修改输出缓存

我知道我可以为ASP.NET MVC控制器操作创建自定义outputcache属性。 我想根据事件是否通过来更改输出缓存的持续时间。 如果已超过当前日期,则持续时间会更长。 但是,我需要检查数据库来执行此操作,但是我在控制器动作本身中进行了相同的调用。 无论如何,是否需要在操作结果的末尾
3回复

ASPX返回图像 - 输出缓存能力?

问候! 我创建了一个APSX Web表单,它根据一些提供的参数返回一个远程图像。 它可以像这样使用: ImageGetter.aspx的标记和代码看起来类似于: 此代码在ImageGetter.aspx的Page_Load方法中调用: 从我的测试来看,它似乎不是缓
1回复

如何设置ASP.NET outputcache属性以产生私有和公共缓存?

我有一个无缝运行的MVC应用程序。 现在,我想稍微改善缓存。 我试图使用System.Web.Mvc命名空间中的OutputCache属性,但是没有选择我选择的哪个值,标题始终是公共的或私有的。 是否可以使用此属性将缓存设置为私有和公共 ?