私はこれに1日半頭を悩ませてきました、そして私は困惑しています。
Mvc3サイトがあり、ウィザード(マルチステップフォーム)を実装しています。
最初のページはコントローラーからビューモデルを受け取り、これはJavascriptにシリアル化されます。
以下のpostメソッドにすべてうまくいきます:
$('#nextButton').click(function (evt) {
// Validate the form, if validation passes, submit the form.
evt.preventDefault();
var $form = $('form');
if ($form.valid()) {
var viewModel = JSON.stringify(model);
$.post(
"SampleSubmission/Home/Index",
{ 'viewModel': viewModel }
);
}
});
次に、以下のコントローラーアクションにヒットします。
[HttpPost]
public ActionResult Index(string viewModel)
{
_viewModel = JsonConvert.DeserializeObject<SampleSubmissionViewModel>(viewModel);
// Save Model to Session.
Session[SessionViewModel] = _viewModel;
// If platform Id != null, workflow has already begun.
if (ModelState.IsValid)
{
return RedirectToAction("SystemDetail");
}
return View(_viewModel);
}
[HttpGet]
public ActionResult SystemDetail()
{
// Page 2- System Details.
return View(_viewModel);
}
リダイレクトは機能しますが、2番目のページは表示されません。
Fiddlerを見ると、ページが正常に返されます。
誰かが言う前に、それはイントラネットサイトなので、私はセッションにモデルを保存しています:-)
2ページ目を表示する方法について何かアイデアはありますか?
乾杯、
ジュール