为什么Response.Cache.SetNoStore()在System.Web.UI.Page派生的类中不起作用

| 我在注册网站上工作是我工作的一部分,并且出现了一些模式,我尝试将其移植到中央“ 0” DLL中。在这里,我过去创建了有用且可重用的方法,例如帮助发送电子邮件的方法以及Ninject的依赖注入设置。 注意“ 0”是我添加到网站的参考,可能会很有用。 在这种情况下,我希望会话终止,以便当有人使用浏览器后退事件时,委托不能重新提交其信息。 我使用的代码是:
        // Stop Caching in IE
        Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);

        // Stop Caching in Firefox
        Response.Cache.SetNoStore();
它起作用了,所以我认为在我的
BasePage
类中有一个可以调用以禁用缓存的方法,并将在页面中执行此操作的调用减少到一行是有用的。 问题是,我认为这部分与事实有关“ 0”是一个引用的DLL,如果我使用来自“ 0” DLL的方法调用,则不会禁用缓存。 有谁知道我是否可以使用从我的dll0ѭdll调用此方法来禁用页面上的缓存,还是必须将其保留在网站本地? 更新07/07 发现了一些有趣的东西。 一些站点建议使用会话变量来确定是否有人正在返回页面。如果是,则将您引爆至暂停页面。 您需要
noCache
,以便页面重新触发
Page_Load
事件 但是我也发现:我的页面包含上面提到的代码,但是我有一个自定义验证,必须点击服务器以进行验证并返回验证错误。进行更正后,该值才有效,然后再次提交。按下表示页面已过期。 因此,如果我更改所有验证以使
EnableClientScript
为false,则一旦成功提交,任何错误都将导致Web服务器在后退按钮事件上超时。 这并不能完全解决问题,但是在特定情况下(如果他们输入无效的值),它将阻止人们回击。 干杯 路加     
已邀请:

要回复问题请先登录注册