我想把一个类对象从一个控制器动作传递到另一个控制器的动作中。
发送者动作:
接收者动作
发送者动作:
public class CourseController : Controller
{
[HttpPost]
public ActionResult CreateNewCourse(CourseViewModelBase courseViewModel)
{
if (ModelState.IsValid)
{
// Do some stuff
return RedirectToAction("CreateNewProject", "Project",
new { courseVM = courseViewModel});
}
// Bad happened
return View("CreateNewCourse", courseViewModel);
}
接收者动作
public class ProjectController : Controller
{
[HttpGet]
public ActionResult CreateNewProject(CourseViewModelBase courseVM)
{
// Use CourseVM data and do other stuff
return View("Create", projectCreateViewModel);
}
}
我在发送方操作中正确获取数据,并且从重定向到操作调用中正确调用接收方操作。然而,在接收方操作中courseVM为null。
我知道这是一个非常古老的问题,已经反复询问过。但我发现大多数答案建议使用TempData
并且是在2008/2009年回答的。我相信有一种方法可以使用RedirectToAction而不使用TempData
传递数据。如果没有,那么我只能使用TempData。
结果
如果我传递一些简单的数据,例如new {id = courseViewModel.CourseDuration}
并将接收器操作中的参数更改为id,则id将被正确接收。
类似的问题
问题1
问题2
问题3
问题4
问题5
问题6,尝试使用此问题但没有成功
问题7
问题8
问题9
问题10
上述问题中的大多数答案都可以追溯到2008/09年,并使用tempdata。