Controller
からView
にランダムstring
を渡そうとしています。ViewDataを使用してASP.NET MVC3のControllerからViewに文字列を渡す
[HttpPost]
public ActionResult DisplayForm(UserView user)
{
//some data processing over here
ViewData["choice"] = "Apple";
return RedirectToAction("Next", "Account");
}
は今、私は次のように作成された私の見解Next.cshtml
にそのデータ値「アップル」を渡したい:
//View: Next.cshtml
@{
ViewBag.Title = "Thanks for registering";
Layout = "~/Content/orangeflower/_layout.cshtml";
}
<p>Your favorite fruit is:</p>@ViewData["choice"]
しかし、私はできませんよ。ここ
は私Controller
コードですプロジェクトが実行されたときにブラウザで自分のデータを見ることができます。ここで
はスナップショットです:
1)デバッグ、値を示すコントローラの場合:
2)ブラウザビューが
"アップル" の値が表示されません3)さらにデバッグして私のNext.cshtml
を表示してください。
なぜ値が正しく表示に渡されないのですか。 Next
とDisplayForm
の両方のコントローラが同じコントローラ内にあります。AccountController.cs
、まだ値が表示されません。
誰かが私を解決するのに役立つことができますか?
ohh私はリダイレクトしていない場合、私のコードごとにリターンビュー( "次へ"、 "アカウント")を書く必要がありますか? –
@ParthDoshi、はい、ViewDataを直接使用する場合。しかし、Redirect-After-Postパターンを保持したい場合は、私の答えに示すようにTempDataを使うことができます。 –
ありがとう! :) –