Asp.net 页面加载未触发更改查询字符串

Asp.net 页面加载未触发更改查询字符串,asp.net,.net-4.0,page-lifecycle,Asp.net,.net 4.0,Page Lifecycle,我有一个问题,当我导航到一个页面并仅仅更改查询字符串时,OnLoad事件没有触发。如果我执行回发,则调用它,然后将查询字符串更改为ONERS more OnLoad 下面是我如何尝试的。我导航到页面OnLoad fires->然后更改查询字符串page updates(所有绑定元素都得到更新)OnLoad not fire->我使用按钮OnLoad fires->进行回发,然后更改查询字符串OnLoad fires 我将尝试更详细地解释 当我登录时,系统有登录窗口,我导航到另一个aspx页面,发

我有一个问题,当我导航到一个页面并仅仅更改查询字符串时,OnLoad事件没有触发。如果我执行回发,则调用它,然后将查询字符串更改为ONERS more OnLoad

下面是我如何尝试的。我导航到页面OnLoad fires->然后更改查询字符串page updates(所有绑定元素都得到更新)OnLoad not fire->我使用按钮OnLoad fires->进行回发,然后更改查询字符串OnLoad fires

我将尝试更详细地解释

当我登录时,系统有登录窗口,我导航到另一个aspx页面,发送两条查询字符串消息,最后一个查询字符串是一个数字(page.aspx?key=text82&key2=2010)。当我第一次进入页面时,PageLoad事件被调用且一切正常,如果我在浏览器中将键2更改为2011并按enter键,则PageLoad不会被调用,但所有绑定元素都会更新(GrivView等)。如果我使用按钮进行回发,则会调用PageLoad。如果我现在将2011年改回2010年并按Enter键,则调用PageLoad

我尝试这是firefox,每次都会调用PageLoad

我很想写一个测试网站,但我没有遇到同样的问题,但我发现在IE8中,将查询字符串更改为相同的数字并按enter键不会调用PageLoad。但在firefox中这样做会引起回发。这是测试代码

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master"     AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
    Welcome to ASP.NET!
</h2>
<p>
    <asp:Button ID="Button1" runat="server" Text="Button" />
    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx?t=tt&   tttttt=2010">HyperLink</asp:HyperLink>
</p>
<p>
    You can also find <a href="http://go.microsoft.com/fwlink/?LinkID=152368&amp;clcid=0x409"
        title="MSDN ASP.NET Docs">documentation on ASP.NET at MSDN</a>.
</p>
</asp:Content>

我发现了问题。看来是浏览器缓存给了我这个问题。按F12键并清除缓存,它会工作

你的问题不清楚,所以你可以多解释一点,并发布你的OnLoad()代码;另外,还可以发布您认为没有调用Load事件的原因。确保包含整个方法,包括签名。还可能包括设置事件处理程序的代码(如果您是这样做的),并让我们知道该代码的位置。我将尝试在此基础上编写一些代码,因为每次使用firefox时都会调用get-OnLoad。
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.master" CodeFile="Default2.aspx.cs"
Inherits="Default2" %>

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><asp:Button ID="Button1"
    runat="server" Text="Button" />
</asp:Content>
protected void Page_Load(object sender, EventArgs e)
{
    Label1.Text += "Called " + DateTime.Now.ToString();
}