ASP.Net页面不发布 - 重新加载

时间:2012-01-16 05:22:06

标签: asp.net url-rewriting postback

我有一个简单的ASP.Net登录页面。单击登录按钮时,页面应回发,偶数应由我的服务器端事件处理程序处理。相反,页面只是重新加载。 Page.IsPostBack false

我在Master页面,ASPX页面和UserControl(ascx)的Page_Load / Init(适用时)处理程序中放置了断点。当我点击“登录”按钮时,而不是回复帖子并调用我的事件处理程序,我只是将页面加载,就像它是一个新的请求一样。

但这不是它的结束!登录页面采用单个查询字符串参数:Login.aspx?id=123456。使用此参数时会发生上述故障。但是,如果我启用网址重写以进行查询Login/123456,则错误会发生;我收到了一个帖子,在这个实例中调用了我的事件处理程序。

那么为什么我没有从我的页面获得预期的行为?重写的URL会让问题消失吗?

登录按钮在LoginUserControl.ascx

中声明
<asp:Button ID="SubmitLinkButton" runat="server" Text='Log In' OnClick="SubmitLinkButton_Click"></asp:Button>

后面代码中的处理程序:

protected void SubmitLinkButton_Click(object sender, EventArgs e)
{
    Authenticate();
}
永远不会调用

SubmitLinkButton_Click。 :(

修改(更多代码):

//Page_Init on the Master page
protected void Page_Init(object sender, EventArgs e)
{

    if (HttpContext.Current.User.Identity.IsAuthenticated) 
    {
        try
        {

            if (SessionFacade.User != null)
            {
                loginlabel.Text = "Logged in |";
                LoginLink.Visible = true;
            }
        }
        catch
        {
            FormsAuthentication.SignOut();
            CacheFacade.RemoveSessionValues();
            Session.Abandon();
            Session.RemoveAll();
            HttpContext.Current.Response.Redirect("~/Login.aspx");
        }
    }
    else
    {
        loginlabel.Text = "";
        LoginLink.Visible = false;
    }
}
ASPX页面上的

Page_Load

protected void Page_Load(object sender, EventArgs e)
{
    if (this.IsPostBack.Equals(false))
    {
        /* Some business stuff that boils down to this: */
        Session["company"] = Request["company"];
    }
}
登录控件上的

Page_Load

protected void Page_Load(object sender, EventArgs e)
{

    if (!Page.IsPostBack)
    {
        //honestly, there's no code here
    }

}

P.S :我需要保留非url-rewrite方式来访问登录页面,因为许多用户仍在导航到该网址。

P.P.S :即使未启用URL重写,错误仍会发生。

4 个答案:

答案 0 :(得分:1)

尝试检查您的缓存政策。可能是您的请求被缓存

答案 1 :(得分:1)

每当我在过去看到这个问题时,通常都会将其归结为网址重写。我通常会找到Fiddler来跟踪HTTP活动。我的预感告诉我,在你点击按钮并看到POST请求后,它将很快被302重定向到登录页面。

您注意到&#34;使用此参数时出现上述故障&#34; login.aspx页面。您确定没有url-rewriter配置,例如,可能会删除任何查询字符串值并进行重定向吗?

答案 2 :(得分:1)

我在IE浏览器上清除了历史记录,问题就消失了。

答案 3 :(得分:0)

您是否尝试使用其他浏览器?一旦我遇到类似的问题,它就通过重新安装Firefox来解决了!