フォームを送信するときに、ユーザーに新しいビューを表示して、送信された結果を表示する(ビューモードを表示ビューに転送する)ようにしたいと思います。RedirectToActionでviewmodelを新しいアクションに渡すことができません
public class HomeController : Controller
{
private MyViewModel _vm;
.....
// POST: /Home/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(MyViewModel vm){
//.....
//set up vm to temp data _vm
_vm = vm;
return RedirectToAction("DisplayData");
}
// GET: /Home/DisplayData
public ActionResult DisplayData()
{
//get temp data for display
return View(_vm);
}
}
フォームを投稿したときに、VMを作成して一時的なデータ場所_vmに配置することができます。しかし、この_vmは別のアクションDisplayDataに送信することができますが、アクションDisplayData()ではnullです。同じコントローラでもアクションをリダイレクトすると_vmが失われているようですが、コントローラvar、アクションメソッドvarではなくです。
この問題を解決するにはどうすればよいですか?
しかし、ポスト、リダイレクト、パターンを取得すると、 – redsquare
RedirectToAction( "DisplayData")は現在のビューをポストアクションで戻します。 – KentZhou
@KentZhou私はあなたを理解しているかわからない。リダイレクトするとHTTPの "Location"ヘッダーがブラウザにどこに行くかを知らせ、ブラウザはそのページのGETリクエストを行います。それはポストをしません。 – redsquare