我已经为此绞尽脑汁了一天半,我被难住了。
我有一个 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);
}
重定向有效,但没有显示第二页。
如果我查看 Fiddler,页面会按原样返回。
我将模型存储在 Session 中,因为它是一个 Intranet 站点,在任何人说之前:-)
关于如何显示第二页的任何想法?
干杯,
朱尔斯