ホームページ >バックエンド開発 >C#.Net チュートリアル >MVCページリダイレクト用のASPコードの説明
この記事では、主に ASP.NET MVC ページ リダイレクトの関連情報を詳しく紹介します。興味のある方は参考にしてください。サーバーは、このページのリダイレクト前にデータを保存した後、実行のためにページを m2.aspx にリダイレクトし、このページに戻って実行を継続します。その後、3 つの結果が結合されてブラウザーに返されます。上記のサーバー側ページは、ブラウザーにページ変更記録を表示しないようにリダイレクトします (表示されるアドレスは変更されません)。したがって、ユーザーがこのページを更新すると、そのようなページのリダイレクトにより、前のページのサーバー
コントロールへのアクセスなど、他のいくつかの機能が完了する可能性があります。
1. Response.Redirect:
ブラウザーが aspx ページをリクエストし、Redirect(url) メソッドに遭遇すると、それは最初に特定のページにアクセスする必要があることをブラウザーに伝えることと同じです。このページに A リクエストを送信します。再配置はブラウザを通じて実行されるため、サーバーとブラウザの間で追加のラウンドトリップが発生します。ネットワークの状態があまり良くない場合、2 つのリクエストによりアプリケーションの応答速度が大幅に低下し、余分な帯域幅を占有することもあります。
要約すると、ネットワーク
の状態
2. ページにジャンプするために asp.net が提供する 3 つの方法の比較
1 response.redirect ページにジャンプするこの方法は 2 往復 (2 ポストバック) を必要とするため、すぐにはジャンプしません。ただし、サイト ページの制限なしで任意のページにジャンプできます (つまり、Yahoo から Sina にジャンプできます)。また、ログイン保護をスキップすることもできません。しかし、速度が遅いのが最大の欠点です。リダイレクト ジャンプ メカニズム: まず、http リクエストがクライアントに送信されて、新しいページにジャンプする必要があることが通知され、その後クライアントはジャンプ リクエストをサーバーに送信します。なお、ジャンプ後は内部空間に保存されているデータ情報は全て失われるため、session
2server.transfer は高速で、ポストバックは 1 回だけ必要ですが、 。 。 。サーバーのメソッドなので同一サイト配下にある必要があります。さらに、ログイン保護をバイパスすることもできます。小さなプログラムを書いてみることができます。ページ 1 からページ 2 へのジャンプを設計します。ただし、ページ 2 に入るにはログインしてフォーム認証を行う必要がありますが、ジャンプ ステートメントで transfer を使用すると、ログイン ページはポップアップしません。このメソッドのリダイレクト リクエストはサーバー側で発生するため、ブラウザの URL アドレスは元のページのアドレスを保持したままになります。 3 sever.execute このメソッドは主にページデザインで使用され、同じサイト内のページにジャンプする必要があります。このメソッドは、あるページの出力結果を別の aspx ページに挿入する必要がある場合に使用されます。そのほとんどは、特定のページが別のページにネストして存在する テーブル
内にあります。
3. ページリダイレクト方法の選択方法
asp.net には 4 つのページ ジャンプ ナビゲーション メソッドがあります。ページに合わせて 1 つを選択するにはどうすればよいですか? 1.Response.Redirect(); メソッド
·いつページを切り替えるか、どのページに移動するかをユーザーに決定してもらいたい場合は、ハイパーリンクが最適です。
· プログラムを使用して変換ターゲットを制御したいが、変換のタイミングはユーザーによって決定される場合は、Web サーバーの HyperLink コントロールを使用して、NavigateUrlプロパティを動的に設定します。
· ユーザーを別のサーバー上のリソースに接続する場合は、Response.Redirect を使用します。
· Response.Redirect を使用して、HTML ページなどの非 ASPX リソースにユーザーを接続します。
·URL の一部として querystring を保持してサーバーに渡す必要がある場合、他の 2 つのメソッドでは 2 つのポストバックを実現できないため、最初にデータをサーバーに戻し、Response.Redirect を使用します。
· 実行プロセスを同じ Web サーバー上の別の ASPX ページに転送する場合は、Response.Redirect ではなく Server.Transfer を使用する必要があります。Server.Transfer を使用すると、不要なネットワーク通信が回避され、それによってパフォーマンスとブラウジング効果が向上します。
· 1 つの ASPX ページの出力結果をキャプチャし、その結果を別の ASPX ページの特定の場所に挿入する場合は、Server.Execute を使用します。
· HTML 出力が正当であることを確認したい場合は、Server.Transfer メソッドや Server.Execute メソッドを使用せず、Response.Redirect を使用してください。
ちなみに、URLが中国語に対応していないため文字化けがよく起こるため、クエリ文字列に中国語を使用するリダイレクト方法を使用する方法を説明します。現時点では、次のように変換する必要があります:
string message =server.urlencode("Welcome");
まず変換してから、クエリ文字列
response.redirect("webform2.aspx?msg="+) を使用します。 message);
Server.Execute について
この ページ ナビゲーション メソッドは、ASPX ページの 関数呼び出し に似ており、呼び出されたページは呼び出し元のページのフォーム データとクエリ文字列セットにアクセスできます。ページ ディレクティブの EnableViewStateMac プロパティが False に設定されます。 デフォルトでは、呼び出されたページの出力は現在の応答ストリームに追加されます。ただし、Server.Execute メソッドには
オーバーロード メソッドがあり、呼び出されたページの出力を、ファイルに直接追加するのではなく、TextWriter オブジェクト (またはそのサブオブジェクト (StringWriter オブジェクトなど) を通じて取得できるようにします)。出力ストリームなので、呼び出されたページの出力結果の位置を元のページ内で簡単に調整できます。 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcDemo.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "欢迎使用 ASP.NET MVC!";
Response.Redirect("User/News");
return View();
}
public ActionResult About()
{
return View();
}
}
}
2.Return Redirect(); メソッド
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcDemo.Controllers { [HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "欢迎使用 ASP.NET MVC!"; return Redirect("User/News"); } public ActionResult About() { return View(); } } }
3 .Return RedirectToAction(); メソッド
このメソッドには 2 つのオーバーロードがあります RedirectToAction("ActionName");// このメソッドはページに直接書き込みます。前提として、コントローラーを変更してページに問い合わせる必要があります。 Index.aspx、About.aspx
RedirectToAction("ActionName", "ControllerName")//このメソッドは、ActionName と ControllerName を直接書き込みます。前提として、前の Index.aspx などのコントローラーの下のページを変更する必要があります。と About.aspxusing System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcDemo.Controllers { [HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "欢迎使用 ASP.NET MVC!"; return RedirectToAction("News","User"); } public ActionResult About() { return View(); } } }【関連する推奨事項】1. 2.
以上がMVCページリダイレクト用のASPコードの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。