无法通过RedirectToAction将视图模型传递给新动作
问题描述:
我有一个表单,当用户提交表单时,我想引导用户显示提交结果的新视图(传输viewmode数据以显示视图)。无法通过RedirectToAction将视图模型传递给新动作
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虽然是Controller var,但不是action method var。
如何解决此问题?
答
的一个好方法是调用
return DisplayData(_vm)
代替
RedirectToAction("DisplayData")
无论如何,DisplayData应该接受一个模型。
但你失去了邮政,重定向,获取模式 – redsquare 2009-07-01 13:47:30