我在VS 2010的网页上放了一个名为“Logout”的linkbutton控件。 当用户按下“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();
....
....
}
但是当程序运行时,任何用户都会点击链接按钮。从不执行LinkButton1_Click的代码,因为页面已经重定向到Logon.aspx页面而且从不执行LinkButton1_Click()
我的问题是为什么LinkButton1提供PostBackUrl属性和服务器端点击事件,但似乎他们不合作很好〜
答案 0 :(得分:1)
这是因为通过设置PostBackUrl,您说当单击按钮时,您希望它发布到LogOn.aspx页面而不是回发给自己。由于您要发布到LogOn.aspx,因此您永远不会触发该事件。
相反,您应该在sesion.abandon之后在按钮单击中使用某种类型的重定向。
答案 1 :(得分:0)
您可以查看是否有LinkButton1_Click
订阅了LinkButton1
OnClick
的活动吗?
然后,对于您在引用ASP.Net时的第二个问题,您可以使用Global.asax
处理此问题,每次会话被销毁时,您都会将任何用户重定向到登录页面。请参阅以下参考链接: