質問

を使用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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top