我想將一個控制器動作的類對象傳遞給不同控制器的動作。將類對象從一個控制器動作傳遞給ASP.net中的不同控制器動作MVC 4
發件人行動
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 in 接收器動作是null。
我知道這是一個非常古老的問題,並被重複詢問。但我發現大多數答案建議使用TempData
並在2008/2009年得到了答案。我相信會有一些使用RedirectToAction without using TempData
的數據。如果沒有,那麼我只會使用TempData。
查找 如果我傳遞一些簡單的數據,例如new {id = courseViewModel.CourseDuration}
並將Receiver action中的參數更改爲id,然後正確接收id。
類似的問題 Question 1
Question 2
Question 3
Question 4
Question 5
Question 6, tried to use this one but did not workout
Question 7
Question 8
Question 9
Question 10
大多數上述問題的答案都可以追溯到2008/09和使用TempData的。
使用這種方法會有什麼壞處嗎?即不使用TempData或ViewBag – Rohit
Rohit:我認爲「RedirectToAction」是最好的選擇。謝謝 – Chandu
嗨Pawanism我在將課程虛擬機從View(.cshtml)發送給控制器時遇到麻煩。它始終爲空 – Rohit