2

私のコードは次のようになります:

protected void Page_Load(object sender, EventArgs e)
{
   if(IsPostback)
   {
      if(/* User is not authenticated to perform any actions on this page */)
      {
        Response.Redirect(/* Error Page */);
      }
   }
}

protected void btnSubmit_Click(object sender, EventArgs e)
{
   /* do some stuff */
}

ボタンを送信してポストバックを実行し、認証されなかった場合、Page_Load でリダイレクトが発生し、HTTP 302 が返されると推測していました。ただし、Response.Redirect コード行を実行しているようです。 、Page_Loadでそれを超えて処理を続け、その後も実行btnSubmit_Clickします。応答はエラー ページではありません。

returnResponse.Redirect の後に呼び出しを配置し​​て、その関数でそれ以上処理されないようにすることはできますが、btnSubmit_Click関数は引き続き実行されます。

なぜこのように機能するのでしょうか。

4

1 に答える 1

5

これ以上コードが処理されないようにするには、次のようにします。

Response.Redirect(url, true);

2 番目のパラメーターは、代わりに以降の処理を終了します。

于 2012-08-15T20:35:43.637 に答える