加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 将一个类对象从一个控制器动作传递到ASP.net MVC

发布时间:2020-12-16 06:32:36 所属栏目:asp.Net 来源:网络整理
导读:我想将一个类对象从一个控制器动作传递给不同的控制器动作. 发件人行动 public class CourseController : Controller{[HttpPost]public ActionResult CreateNewCourse(CourseViewModelBase courseViewModel){ if (ModelState.IsValid) { // Do some stuff re
我想将一个类对象从一个控制器动作传递给不同的控制器动作.

发件人行动

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.但是,Receiver Action中的courseVM为null.

我知道这是一个非常古老的问题,并且一再被问到.但我发现大多数答案建议使用TempData并在2008/2009年得到回答.我相信在不使用TempData的情况下使用RedirectToAction传递数据会有所改变.如果没有,那么我只会使用TempData.

查找
如果我传递一些简单数据,例如new {id = courseViewModel.CourseDuration}并将Receiver操作中的参数更改为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.

解决方法

用这个

return RedirectToAction("ActionName","ControllerName",modelObj);

在你的情况下

return RedirectToAction("CreateNewProject","Course",courseViewModel);

你也可以使用

TempData

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读