どのようにRedirectToActionにASP.NET MVCな要求データ
-
08-06-2019 - |
質問
を使用ASP.NET MVCある状況などのフォーム送信)の設定がある場合があり RedirectToAction
.
な状況が足りない場合誤差の検証した後、書のご提出を要するリダイレクトの形式では、URLのURLの形式ではなく、行動のページで提出。
どの形式のもの POST
編のデータは、ユーザーの利便性などの検証を目的に、どのようにしていただくためのデータを RedirectToAction()
?を用いてviewDataパラメータ、 POST
パラメータを変更となります GET
パラメータ。
解決
このセクションの利用にTempData財産保存の要請。
たとえば、次のようになります。
public ActionResult Send()
{
TempData["form"] = Request.Form;
return this.RedirectToAction(a => a.Form());
}
その後に"フォーム"アクションです:
public ActionResult Form()
{
/* Declare viewData etc. */
if (TempData["form"] != null)
{
/* Cast TempData["form"] to
System.Collections.Specialized.NameValueCollection
and use it */
}
return View("Form", viewData);
}
他のヒント
こTempData店舗のコレクションです。ない場合はのように行動、実践できる、新しいITempDataProvider ータ使用その他の機構の保存温度データです。かいないかも(測定プロファイリング)のセッションの状態を傷つけます。
見 MVCContrib, 、これを実行する事ができます。:
using MvcContrib.Filters;
[ModelStateToTempData]
public class MyController : Controller {
//
...
}
もう一つの方法があり回避するtempdata.パターンにうのを作り上げていくアクションを1つの独自の描画を再描画するのは無効です。って思ったこと。
var form = new FooForm();
if (request.UrlReferrer == request.Url)
{
// Fill form with previous request's data
}
if (Request.IsPost())
{
if (!form.IsValid)
{
ViewData["ValidationErrors"] = ...
} else {
// update model
model.something = foo.something;
// handoff to post update action
return RedirectToAction("ModelUpdated", ... etc);
}
}
// By default render 1 view until form is a valid post
ViewData["Form"] = form;
return View();
ことになるパターンにより以下とします。少しpseudoy.本を作成できます1ビューを扱うレンダリングを再表示する値のフォームを入れ、前の値を示すエラーメッセージが返されます。
る場合は、この行動が有効で制御を行う。
ようにしているこのパターンを簡単に .純検証の枠組み し構築の支援のためのMVC.
場合に渡したいデータへのリダイレクトアクション、方法を使用できるのは:
return RedirectToAction("ModelUpdated", new {id = 1});
// The definition of the action method like public ActionResult ModelUpdated(int id);
所属していません StackOverflow