我想将一个控制器动作中的类对象传递给不同控制器的动作。
发件人操作
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);
}
}
我在发送方操作中正确获取数据,并且接收方操作从重定向到操作调用中正确调用。但是Receiver Action中的courseVM是null。
我知道这是一个非常古老的问题,并且被反复问过。但我发现大多数答案都建议使用TempData
并在 2008/2009 年得到回答。我相信会有某种方式使用RedirectToAction without using TempData
. 如果没有,那么我只会使用 TempData。
查找
如果我传递了一些简单的数据,例如new {id = courseViewModel.CourseDuration}
并将 Receiver 操作中的参数更改为 id,那么 id 会被正确接收。
类似问题
问题 1
问题 2
问题 3
问题 4
问题 5
问题 6,尝试使用这个但没有锻炼
问题 7
问题 8
问题 9
问题 10
上述问题中的大多数答案都可以追溯到 2008/09 年并使用 tempdata。