0

我使用 VS 2010 在我的网页上放置了一个名为“Logout”的链接按钮控件。当用户按下“Logout”链接按钮时,我希望系统做两件事。首先是触发服务器端点击事件来做一些事情,例如清除所有会话变量等。其次是将用户重定向到另一个页面,例如 logon.aspx

所以我写了以下代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        LinkButton1.PostBackUrl = "LogOn.aspx";
    }
}

protected void LinkButton1_Click(object sender, EventArgs e)
{
    Session.Abandon(); 
    ....
    ....

}

但是当程序运行时,任何用户点击链接按钮。LinkBut​​ton1_Click 的代码永远不会被执行,因为页面已经被重定向到 Logon.aspx 页面并且永远不会执行 LinkBut​​ton1_Click()

我的问题是为什么 LinkBut​​ton1 提供 PostBackUrl 属性和服务器端点击事件,但似乎他们并没有很好地配合~

4

2 回答 2

1

这是因为通过设置 PostBackUrl 您是在说当单击按钮时您希望它发布到 LogOn.aspx 页面而不是回发到自身。由于您发布到 LogOn.aspx,您将永远不会触发该事件。

相反,您应该在您的 session.abandon 之后在您的按钮单击中使用某种类型的重定向。

于 2013-04-18T03:16:53.177 回答
0

您可以检查是否有LinkButton1_Click订阅 aLinkButton1的事件OnClick吗?

然后对于您的第二个问题,因为您使用的是 ASP.Net,您可以使用您的 处理此问题,Global.asax每次会话被破坏时,您都会将任何用户重定向到登录页面。请参阅下面的参考链接:

1.) SessionStateModule.End 事件

2.)在 Global.asax 中使用 Session

于 2013-04-18T03:16:45.890 回答