web-dev-qa-db-ja.com

あるASP.NETページから別のページにリダイレクトする方法

ボタンを使用して、あるASP.NETページから別のページ( "Webform2.aspx")にリダイレクトするにはどうすればよいですか?

5
YProgrammer

Response.Redirect()を使用して、あるページから別のページにリダイレクトできます

10
user746432

次のように、ボタンのPostBackUrlプロパティを設定します。

button1.PostBackUrl= "Webform2.aspx";
8
Antonio Bakula

個人的には、ボタンがクリックされたときに新しいページをロードするだけの場合は、クライアント側のスクリプトを使用してこれを実行します。

これには、次のようにJSライブラリ(例:jQuery)を使用できます。

jQuery

_$(function() {
  $('#<%= button1.ClientID %>').click(function() { 
      window.location.href = "Webform2.aspx"; 
      });
});
_

ASP.NET

_<asp:Button id="button1" runat="server"/>
_

または、特にASP.NETesqueの方法として、Antonioが提案するように_Button.PostBackUrl_を使用できます。これは、クライアント側のスクリプトを引き続き使用しますが、自分で作成する必要はありません。 。ボタンのHTMLは次のようにレンダリングされます。

_<input type="submit" name="button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;button1&quot;, &quot;&quot;, true, &quot;&quot;, &quot;webform2.aspx&quot;, false, false))" id="button1" />
_

サーバー側で行う他の処理があり、後でリダイレクトする必要がある場合は、クリックハンドラーでResponse.Redirect("Webform2.aspx");を使用します。

それでも問題が解決しない場合は、質問に詳細を追加して、何が起こっているのかを説明してください。

2
Town

以下のコードを使用して、別のASP.NETページにリダイレクトできます。

Response.Redirect("Webform.aspx");

これが最も簡単な方法です

2
G.Nader

まあ、たくさんの方法があります。 _Response.Redirect_、_Server.Transfer_、ページへのJavascript呼び出し。

ボタンに対するサーバー側のアクションがない場合は、Javascript呼び出しが必要です。 _onclick="javascript:window.location.href = Webform2.aspx?id='<%=Request.QueryString["id"]%>'_ "

_Server.Transfer_はサーバー側でリダイレクトを行います。つまり、webform2からの応答後も、ブラウザは引き続き表示されます。 Webform1.aspxはリクエストをwebform2にリダイレクトし、webform2はリクエストを提供します。 (Req = 1、Res = 1)

_Response.Redirect_:webform1は、ブラウザにwebform2に新しいリクエストを行うように求める応答を送信します。この場合、ブラウザはwebform2に新しいリクエストを作成するときにURLを変更します(Req = 1 + 1、Res = 1 + 1)

もう1つの方法があります。興味がある場合は、form.submit()です。従来のhtmlフォームを送信します。

何よりも、PostBackURLを使用したクロスページポストバックについて言及するのを忘れました。 http://aspdotnetcode.source-of-humor.com/TipsAndTricks/General/CrossPagePostbackAspNetCrossPagePostback.aspx

2
Raghav

以下のコードを使用できます:

protected void Button1_Click(object sender, EventArgs e) {
    Response.Redirect("default2.aspx");
}

default2.aspxが2番目のWebページ名であり、

1
Mani Rana

Response.Redirect(string url) は、clienturlにリダイレクトするように指示する302HTTPステータスコードを発行します。ブラウザはurlの新しいリクエストを発行し、URLはアドレスバーで変更されます。

Server.Transfer(string path) 現在のページの実行を終了し、指定されたpathで新しいページの実行を開始します。つまりinternallyIIS内。したがって、ブラウザのアドレスバーのURLは変更されません。転送先のページは、同じWebサイトのaspxページである必要があります。

違いは微妙ですが重要です。これについて考える簡単な方法は、「ユーザーはこのURLをブックマーク/お気に入りに追加する必要がありますか?」と自問することです。使用する Response.Redirect URLが変更され、コンテンツへの今後のアクセスが新しいURLにある必要がある場合。使用する Server.Transfer URLが正しく最新であるが、今回は別のコンテンツを表示する必要がある場合-エラーメッセージを表示している場合、続行するにはユーザーに資格情報を入力する必要がある場合、またはコンテンツを変更する必要がある他の理由がある場合URLはすべきではありません。

上記のいずれかは、コードビハインドのASP.NETボタンコントロールのClickイベントハンドラー内で使用できます。

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Redirect("Webform2.aspx");
      // OR
    Server.Transfer("Webform2.aspx");
}
1
Stephen Kennedy

Response.RedirectメソッドとServer.Transferメソッドの両方を使用して、ユーザーを1つのWebページから別のWebページに転送します。どちらの方法も同じ目的で使用されますが、それでも次のようないくつかの違いがあります。

Response.Redirectメソッドはリクエストを新しいURLにリダイレクトし、新しいURLを指定しますが、現在のリクエストのServer.Transferメソッドは現在のページの実行を終了し、ページの指定されたURLパスを使用して新しいページの実行を開始します。

Response.RedirectとServer.Transferはどちらも、次のような同じ構文を持っています。

Response.Redirect( "UserDetail.aspx"); Server.Transfer( "UserDetail.aspx");

さらにいくつかのポイントに触れる前に、いくつかのHTTPステータスコードについて説明したいと思います。これらは、これら2つの基本的な違いを理解するために重要です。 HTTPステータスコードは、WebサーバーがWebブラウザまたはユーザーエージェントと通信するために使用するコードです。 Response.RedirectはHTTPリクエストをブラウザに送信し、次にブラウザはそのリクエストをWebサーバーに送信し、次にWebサーバーはWebブラウザに応答を配信します。たとえば、Webページ「UserRegister.aspx」ページにアクセスしていて、「UserDetail.aspx」Webページにリダイレクトするボタンがあるとします。

0
charan0493