我正在使用AcceptVerbsScott Gu的Preview 5博客文章中详述的方法来处理ASP.NET MVC中的表单条目:
所以我没有必要使用TempData.也就是说,我现在必须在此过程中添加一个"确认"步骤,似乎需要使用TempData.
出于某种原因,我厌恶使用TempData- 它是一种可以设计的东西.
这是一个有效的问题,还是我在弥补?
可能重复:
将数据从Action传递给另一个Action
我有一个视图,我提交一个表单,并根据我想重定向到一个动作的结果.对应于和动作的视图是强类型的,它应该接受ResultsViewModel.
我正在尝试使用T4MVC传递ResultsViewModel.
以下是代码:
[HttpPost]
public virtual ActionResult AddEntity(string viewModel)
{
//Deserialize using Json.NET
var entity = JsonConvert.DeserializeObject<MyEntity>(viewModel);
var success = DoSomething(); //returns boolean
if(success)
{
var result = new ResultsViewModel { MyEntity = entity, MessageId = 1};
return RedirectToAction(MVC.MyController.ResultsPage(result));
}
var result = new ResultsViewModel { MyEntity = entity, MessageId = 2};
return RedirectToAction(MVC.MyController.ResultsPage(result));
}
public virtual ActionResult ResultsPage(ResultsViewModel viewModel)
{
return View(viewModel);
}
Run Code Online (Sandbox Code Playgroud)
当代码到达时
public virtual ActionResult ResultsPage(ResultsViewModel viewModel)
{
return View(viewModel);
}
Run Code Online (Sandbox Code Playgroud)
viewModel始终等于null.
我知道我可以这样做:
return RedirectToAction("ResultsPage", …Run Code Online (Sandbox Code Playgroud)