Response.Redirect设置为另一个页面,但再次通过当前页面上的Page_Load

时间:2015-07-02 14:47:23

标签: c# .net

我有一个页面...

Page_Load(){
  if (Session["UserName"] != null){
     //code for security questions.. i have to go into this logic on every postback to check the security answer.
  }
  else{
    //sends to a page i don't want it to go to
  }
}

method(){
 ...
 Session["Username"] = null;  //if it reloads the page_load from this page, it sends it ot a page i don't want it to go to.
 Response.Redirect("nameofpage.aspx");
}

问题在于它没有直接进入新页面。它再次通过此页面的Page_Load,我需要它转到" nameofpage.aspx"。有没有办法将它发送到下一页而不使用Server.Transfer?

4 个答案:

答案 0 :(得分:1)

查看Page.IsPostBack属性以检查页面是第一次呈现还是正在加载以响应回发。

答案 1 :(得分:0)

您遇到的问题是重定向会发回信息。您可以使用函数IsPostBack检查页面是否第一次加载或是否在回发时运行。

if(!Page.IsPostBack){
  // Do stuff
}

答案 2 :(得分:0)

您的问题是该网页正在执行postback。这就是为什么你的页面会发射两次我相信的原因。在您的代码中,您应该:

if(!this.IsPostBack)
   //continue with code
else
   //something else

同时检查您的#page指令并确保AutoEventWireup="true"不存在。这通常是回发问题的根本原因或为什么page_load将被调用两次。

答案 3 :(得分:0)

对不起伙计们,这是一个糟糕的javascript _dopostback在正面导致多个回发。 :(

*刘海撞在桌子上,嘀咕...... 其他ppls代码

相关问题