日期:2014-05-19  浏览次数:20396 次

非常弱智的问题
我在WebForm1中的HTML中设置输出缓存
<%@OutputCache   Duration= "10 "   VaryByParam= "None "%>
然后在Button单击事件中
Response.Redirect( "WebForm2.aspx ");
运行后单击Button转向WebForm2
但是运行后只要调用其他方法后,单击Button的方法就不好用了
必须等到Duration的时间结束后才好用,不知道为什么
谁能解答下?

------解决方案--------------------
Response.Redirect( "WebForm2.aspx ");
是由服务器执行...

location.href由客户端执行...

所以你应该改用js:location.href


------解决方案--------------------
javascript 控制
------解决方案--------------------
因为你用了页面缓存,当你先调用其它的方法后,这时页面运行的结果已经存在缓存中了,在缓存结束前,你点击按钮请求页面,服务器不会给你重新执行页面代码,他是从缓存中取给你的,所以你点了按钮后不起作了。要想跳转,就象楼上所说的,不要用Response.Redirect( "WebForm2.aspx "); 改用客户端的跳转 <script language=javascript> location.href = "WebForm2.aspx "; </script>
------解决方案--------------------
在Page_Load里

Button1.Attributes.Add( "onclick ", " <script type= 'text/javascript '> location.href = "WebForm2.aspx "; </script> ");