C#学习教程:为什么使用ASP.NET从另一个页面返回后Page_Load没有触发-ergoepicembarrassment:)假设我在同一个ASP.NETC#网站上有两个页面。我试过以声明方式关闭缓存,尝试在我的重定向中使用true作为endResponse...似乎没有任何区别。大家别管了!我是一个白痴!使用VisualStudioDevLocalhost,Redirect重定向到实时页面!?页面执行的原因不会影响页面循环,Load页面执行时总会触发Load事件。因此,如果Page_Load有时不运行,那是因为页面被缓存并且没有在服务器上执行。页面可以缓存在浏览器中,路径中的某个路由器中,或者使用服务器端页面缓存缓存在服务器上。如果您没有为您的页面启用服务器端页面缓存,它将缓存在您的浏览器或网络上。您可以使用缓存设置来尝试消除此问题:Response.Cache.SetCacheability(HttpCacheability.NoCache);这样就会使得页面在正常情况下不会被缓存。(还要检查您的浏览器是否处于离线模式,然后它会使用缓存中的任何内容,而不管其缓存设置如何。)当使用后退按钮导航到页面时,页面会从内存中重新加载,并且没有请求发送到服务器。您可以通过Fiddler确认。我不确定在所有浏览器中是否都是这种情况。如果您正在重定向,则客户端可能正在缓存响应。要覆盖它,您可以添加一个额外的查询参数来保持时间。这通常足以覆盖大多数页面缓存机制。尝试使用Server.Transfer而不是Response.Redirect。客户端不会看到URL更改,但这可能并不重要,具体取决于您的要求我遇到了同样的问题并发现这对我有用:(在Page_Load部分添加)if(this.Master.Page.Header!=null&&Session["RELOAD"]==null){System.Web.UI.HtmlControls.HtmlHeadhh=this.Master.Page.Header;System.Web.UI.HtmlControls.HtmlMetahm=新的System.Web.UI。HtmlControls.HtmlMeta();hm.Attributes.Add("http-equiv","Refresh");hm.Attributes.Add("内容","3");hh.Controls.Add(hm);然后我在执行要运行的代码后立即添加Session["RELOAD"]="1"以防止它一遍又一遍地刷新。奇迹般地工作。将VS从调试模式更改为发布模式对我有用....请运行以下代码以禁用Firefox中的页面缓存。Response.AppendHeader("Cache-Control","no-store");将其应用于主页的页面加载。以上就是C#学习教程:为什么使用ASP.NET从另一个页面返回后不触发Page_Load-ergo史诗般的尴尬:)全部内容分享,如果对大家有用,需要了解更多C#学习教程,我希望大家多多关注~本文为网络收集,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
