日期:2014-05-17  浏览次数:20373 次

关于用户控件缓存的问题.
我创建了一个用户控件UserControl_A,在该用户控件放了一个Repeater控件Repeater_A。然后设置该控件的缓存
<%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser" %>

然后我在页面A.aspx中调用该用户控件UserControl_A,第一次加载正常,但再刷新就报UserControl_A等于null的错误,请问应该怎么解决。

不加控件缓存是正常的,不管怎么刷新都没有问题。

------解决方案--------------------
在控件上下断点。查看是否获得了某些数据
------解决方案--------------------
参考
------解决方案--------------------
你首先可以参考这些:http://www.google.com.hk/search?q=asp.net+PartialCachingControl&hl=zh-CN&newwindow=1&safe=strict&rlz=1I7GGLD_zh-CN&prmd=ivns&source=lnt&tbs=lr:lang_1zh-CN%7Clang_1zh-TW&lr=lang_zh-CN%7Clang_zh-TW&sa=X&ei=J7clToz4DcuMmQXA8_ySCg&ved=0CAcQpwUoAQ&biw=1308&bih=684

当用户控件自动进行缓存时,你去“调用它”,结果是null。实际上asp.net会在原来需要用户控件的地方,另外装入一个PartialCachingControl控件,来替代目标用户控件。而目标用户控件被删除了。

我不知道你要怎样“调用”它。要想修改你代码中的bug,只要加入判断它是不是null就行了。