我遇到了一个奇怪的问题。这是方案
以下是我的文件:
它们的设置完全相同,包括它们的Page_Load函数:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If (Not Page.IsPostBack) Then
setPrevIndex(-1)
...
End If
End Sub
他们都是这样设置的。
这是我遇到问题的地方。当我导航到这些页面中的任何一个时,我需要确保将prevIndex设置为-1(通过该函数)。
任何想法为什么???会导致这种情况的原因是什么?
请要求澄清。
更新
当我在指向同一URL的URL中按“Go”时,似乎主页是唯一重新加载的东西,但Load_Page事件甚至没有触发......
还有其他建议吗?
谢谢, ë
答案 0 :(得分:6)
尝试禁用输出缓存并查看问题是否仍然存在:
<system.web>
<caching>
<outputCache enableOutputCache="false"/>
</caching>
<system.web>
答案 1 :(得分:3)
使用LiveHTTPHeaders或Fiddler确保每次都以相同的方式实际请求页面。这可能是缓存的问题。
答案 2 :(得分:3)
在本地加载您的网站,然后转到http://yourwebsite/trace.axd
这显示了每个页面的服务器跟踪以及服务器状态。它还显示了完整的页面生命周期和时间。
清除当前跟踪,然后重复3次访问并重新加载到Project1.aspx和Project2.aspx
trace.axd现在显示什么?您应该有6个条目,每个条目的状态代码为200,动词为GET。
如果你的数量较少那么你的问题就是某种缓存。
如果你有6,那么检查最后一个的详细信息 - 页面事件生命周期显示了什么?它还将显示完整的WebForm控件层次结构,因此如果这与主页面相关,您将能够分辨。
答案 3 :(得分:1)
尝试在Page Init Event中将previndex设置为-1。我不知道为什么会发生这种情况。
答案 4 :(得分:1)
各种与缓存相关的事情可能导致请求无法进行,特别是当您只按“go”按钮时,您应该检查缓存标题。
如果缓存是个问题,您可以执行以下操作:
//ask browser to revalidate:
context.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
//and hint that the page is outdated anyhow...
context.Response.Cache.SetMaxAge(TimeSpan.Zero);
这应该说服浏览器在每次网页浏览时真正获得新版本。例如,您可以在Page_Load本身中设置这些变量;-)。如果您没有使用https,那么以下内容也是无风险的:
//prevents plugin based file-open in IE+https, otherwise fine:
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.Cache.SetNoStore();
我敢打赌这解决了 - 如果没有,我第二个Jeremy Steins建议您使用fiddler来验证请求是否真的在制作(因为你是一个web-dev,无论如何得到小提琴手,它是一个方便的工具,可用于所有浏览器!)。
最后 - 你可以告诉你点击go时页面上是否有其他代码? (即整个页面没有运行,或只是Page_Load - 后者会建议事件连线错误,考虑到你的加载程序有时开火),这将是奇怪的。
答案 5 :(得分:0)
听起来您的页面已缓存。这会导致Page_Load不会触发。检查您是否在任何地方都没有设置。
答案 6 :(得分:0)
您是否尝试将应用程序发布到其他计算机?它可能是IIS做某事,所以先尝试消除它。假设你的代码在两者中都是相同的,只有页面名称不同(在aspx和.cs文件上做差异验证)然后将你的应用程序移动到另一台服务器并重新测试。
如果它仍在发生,它确实必须是你的浏览器做一些可能与缓存有关的事情。
答案 7 :(得分:0)
尝试在服务器上重新创建具有精简功能的方案。如果问题仍然存在,请尝试使用一些缓存计数方法。如果没有,那就意味着它必须是你的代码。
答案 8 :(得分:0)
如果您在页面顶部(或母版页)上有此(或类似),则会导致:
/* Class Schedule table */
.schedule-wrapper {} .schedule {
width: 100%;
table-layout: fixed;
border-spacing: 0;
margin: auto 0;
font-size: .8em;
}
.schedule p {
line-height: 1.2em;
}
.schedule th,
.schedule td {
border: solid tan 1px;
min-width: 250px;
text-align: left;
vertical-align: top;
padding-left: 10px;
padding-right: 10px;
padding-top: 5px;
}
.schedule th {
text-align: center;
}
.schedule .header-row,
.schedule .header-col {
background-color: lightgrey;
text-align: center
}
.schedule .header-col {
padding-left: 5px;
padding-right: 5px;
vertical-align: middle;
max-width: 125px !important;
min-width: 100px !important;
}
.class-title {
padding: 5px;
font-size: 1.2em;
text-decoration: underline;
text-align: left;
color: blue;
}
.instructor {
padding: 5px;
padding-top: 8px;
font-size: 1em;
text-decoration: underline;
text-align: right;
color: blue;
}
.class-descrip,
.instructor-bio {
color: purple;
display: none;
}
.class-title:hover + .class-descrip,
.instructor:hover + .instructor-bio {
display: block;
}
.popup {
border: 2px solid #000;
border-radius: 10px;
width: 200px;
height: 250px;
overflow: auto;
background-color: rgba(0, 0, 0, .6);
color: #fff;
z-index: 1000;
position: absolute;
}
@media only screen and (max-width: 1200px) {
.schedule-wrapper {
-webkit-overflow-scrolling: touch;
overflow-x: auto;
margin: 0 0;
}
.schedule {
width: auto;
}
.schedule th,
.schedule td {
max-width: 150px;
}
}