我有一个ASCX控件,它位于用.net编写的CMS内部,我遇到的问题是我们在头文件中传递了一个名为fullname的变量。我们有一个简单的脚本来读取此变量,然后在页面中输出名称。但有时一些用户会得到完全随机的用户名(我已经证实他们没有登录到那台机器,它告诉我这必须是某种服务器端缓存)。我正在考虑使用SetCacheability,但不确定这是否会导致整个页面没有被缓存,或者仅仅是在页面上加载的ascx控件。关于该怎么做的任何想法?
Response.Cache.SetCacheability(HttpCacheability.NoCache);
if (!String.IsNullOrEmpty(this.UserName))
{
lblUsername.Text = Request.ServerVariables["fullname"].ToString();
}
答案 0 :(得分:2)
您可以在ASCX标记中声明@OutputCache
属性,并将其属性设置为Duration="0" VarByParam="None"
(documentation)。
另外,您可以查看“Caching portions of an ASP.NET Page”文章和“Dynamically Updating Portions of a cached page”。