这样缓存出现一个问题,是第一次访问哪个,以后显示的全是这个
例如先访问http://127.0.0.1/page.aspx?Mode=01 显示为01.ascx
再访问http://127.0.0.1/page.aspx?Mode=02 时,还是显示01.ascx的内容
为什么?
例如先访问http://127.0.0.1/page.aspx?Mode=01 显示为01.ascx
再访问http://127.0.0.1/page.aspx?Mode=02 时,还是显示01.ascx的内容
为什么?
这句应该是写在page.aspx里而不是ascx里吧?
建议你这么做,在01.ascx和02.ascx里写缓存的语句,03.ascx和page.aspx里不要写不就可以了吗?
System.Web.HttpContext.Current.Response.Buffer=false;试试
System.Web.HttpContext.Current.Response.Buffer=false;
这是什么意思?
if(this.Request["mode"].ToString() == "1"){
Control controlA = this.LoadControl("a.ascx");
this.Page.Controls[1].Controls.Add(controlA);
}
else if(this.Request["mode"].ToString() == "2"){
Control controlB = this.LoadControl("b.ascx");
this.Page.Controls[1].Controls.Add(controlB);
}
else if(this.Request["mode"].ToString() == "3"){
Control controlC = this.LoadControl("c.ascx");
this.Page.Controls[1].Controls.Add(controlC);
}
这是加载用户控件的代码。
其中a.ascx和c.ascx做了缓存b.ascx没有缓存!我运行没有你说的问题呀!我在页面设置缓存标记:<%@ OutputCache Duration = "3600" VaryByParam = "mode" %>
a和b也是同样的标记!
放在a.ascx中?