Open棟梁 wiki
リダイレクトによる画面遷移、トランスファー(フォワード)による画面遷移から方式を選択する 。
ココでの画面遷移とは、サーバ上で強制的に次画面に遷移する場合の処理を指している。クライアントが、画面上のリンクなどを押下して遷移する画面遷移ではないので注意する。
※ 次項で説明する「Server.Transfer : トランスファー(フォワード)」は性能的に有利であるが、画面とURL・ASP.NETパイプライン処理が1対1に対応しない。
ASP.NET MVCは”ユルイ”フレームワークであるのでなんでもできてしまう。
従って、何か規則を決めないと、言及できないので、
URL - 画面 - MVCコンポーネントのセットが1対1に対応させたとする。
この場合、 ≒ ASP.NET Web Formsの設計が可能である。
MVCには、
の2つの方式があるので、これについて言及する。
// 結果表示するメッセージ string message = ""; CrudModel model = new CrudModel(); // 値の復元のため、CopyInputValuesを呼び出す。 model.CopyInputValues(form); // メッセージを設定。 model.Message = message; // Html.BeginFormでは、全体更新。 return View("Index", model);
//return new RedirectResult("/CrudMu/"); return Redirect("/CrudMu/");
// 結果表示するメッセージ string message = ""; CrudModel model = new CrudModel(); // メッセージを設定。 model.Message = message; // Ajax.BeginFormでは、以下のように記述することで部分更新が可能。 return PartialView("_MessageView", model);
// Ajax.BeginFormでは、UpdateTargetIdで指定した // ターゲット以外を更新する場合、JavaScriptでの対応が必要。 // #ここではjQueryを使用している。 string scriptText = "$('#lblMessage').text('" + message + "');"; return JavaScript(scriptText);
return JavaScript("location.href='/CrudMu2/';");
画面遷移方式に「リダイレクト」を採用した場合の情報の持ち回り・状態管理方式テンプレート
画面遷移方式に「トランスファー(フォワード)」を採用した場合の情報の持ち回り・状態管理方式テンプレート
リダイレクトと同じ。
リダイレクトと異なる点。
リダイレクトと同じ。
リダイレクトと同じ。
リダイレクトと同じ。
リダイレクトと同じ。
リダイレクトと同じ。
リダイレクトと同じ。
TLS(Thread Local Storage)については以下を参照。