<%@ OutputCache Duration="120" VaryByParam="*" %> //我想问一下这里该怎么写?
<asp:Repeater ID="rptMoreList" runat="server">
<ItemTemplate>
<li>.........</li>
</ItemTemplate>
</asp:Repeater>private int _type = 1;
protected void Page_Load(object sender, EventArgs e)
{
rptMoreList.DataSource = bll.GetTopN(_type);
rptMoreList.DataBind();
} public int Type
{
set { this._type = value; }
get { return this._type; }
}页面调用:<uc2:More ID="More1" runat="server" />
if (More1 != null)
{
More1.Type = type;
}想实现效果:此页面为信息显示页面,左侧有一区域用以显示该信息所在栏目推荐信息列表,也就是说此页面根据信息所在不同的栏目显示不同的信息列表,栏目类型对应用户控件的属性。问题:
当我使用VaryByParam="*" 时 每次都执行More1.Type = type 即便是type没有变化 也不调用缓存数据,而是重新读取数据库数据。 当我使用VaryByParam="None"时 缓存是生效了 但是即便是type发生了变化 列表信息还是第一次加载页面时所在栏目(type)的列表信息,不会随着栏目的改变而改变。请各位老大们给小女子予以解答
<asp:Repeater ID="rptMoreList" runat="server">
<ItemTemplate>
<li>.........</li>
</ItemTemplate>
</asp:Repeater>private int _type = 1;
protected void Page_Load(object sender, EventArgs e)
{
rptMoreList.DataSource = bll.GetTopN(_type);
rptMoreList.DataBind();
} public int Type
{
set { this._type = value; }
get { return this._type; }
}页面调用:<uc2:More ID="More1" runat="server" />
if (More1 != null)
{
More1.Type = type;
}想实现效果:此页面为信息显示页面,左侧有一区域用以显示该信息所在栏目推荐信息列表,也就是说此页面根据信息所在不同的栏目显示不同的信息列表,栏目类型对应用户控件的属性。问题:
当我使用VaryByParam="*" 时 每次都执行More1.Type = type 即便是type没有变化 也不调用缓存数据,而是重新读取数据库数据。 当我使用VaryByParam="None"时 缓存是生效了 但是即便是type发生了变化 列表信息还是第一次加载页面时所在栏目(type)的列表信息,不会随着栏目的改变而改变。请各位老大们给小女子予以解答
你的sid是url传参时候的参数名吗 那大概就是要写VaryByParam="sid"了吧