C#如何停止控件的事件

时间:2015-02-06 18:27:41

标签: c#

我有一个.aspx页面,其page_load如下:

protected void Page_Load(object sender, EventArgs e)
{
    if (HttpContext.Current.User.Identity.Name != "")
    {
        ....
    }
    else
    {
        FormsAuthentication.RedirectToLoginPage();
        return;
    }
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
     ....
}

我注意到的问题是,当用户单击提交按钮时,它会通过Page_Load(通过其他方式),然后尝试运行受保护的void btnSubmit_Click(object sender, EventArgs e)

有没有办法让它重定向到登录页面而不是继续下一个空白?

2 个答案:

答案 0 :(得分:2)

这是 NOT 问题。这是正常的ASP.NET Page Life Cycle

Page_Load事件发生后立即控制事件。

请注意,FormsAuthentication.RedirectToLoginPage方法不会通过调用HttpResponse.End来结束请求。这意味着将运行RedirectToLoginPage方法调用之后的代码。

答案 1 :(得分:0)

假设您要停止Page_Load内的进一步处理(我相信是您的意图return):

protected void Page_Load(Object sender, EventArgs e)
{
    if (/*I want to kill processing*/)
    {
        // Method one:
        Response.End(); // Though admittedly ugly

        // Method two:
        this.Context.ApplicationInstance.CompleteRequest();

        return; // return as normal (short-circuit)
    }
}