我有一个名为UC_Test的asp.net用户控件,它有一个名为param1的公共属性。它存放在aspx页面A和B中。
在页面A上,param1设置为10,在页面B上param1设置为20。 根据参数值,控制用户控件的格式。
我希望页面A和页面B缓存分隔用户控件的实例。
正如okw指出的那样,我想出于性能原因使用缓存而不是持久化值。请告诉我如何实现这一点。
我可以为此目的使用Shared = false吗?例如?
感谢阅读。
答案 0 :(得分:1)
这听起来像是VaryByCustom输出缓存指令的理想候选者。您可以使用属性的值来确定缓存版本之间的差异。
有关详细信息,请参阅MSDN:http://msdn.microsoft.com/en-us/library/ms550239.aspx
答案 1 :(得分:0)
最直接的方法是使用保存适当值的HiddenField。在表单提交或回拨呼叫期间从页面读回来。
答案 2 :(得分:0)
您可以执行以下操作:
public int MyProperty
{
get
{
return (int)ViewState[this.UniqueID + "_MyProperty"];
}
set
{
ViewState[this.UniqueID + "_MyProperty"] = value;
}
}
此场景中的ViewState可与HttpContext.Current.Cache或HttpContext.Current.Session互换。您只需要确保检查空值或其他任何内容。
希望它有所帮助。