如何将模型数据从一个控制器传递到另一个控制器

2024-03-27

将模型数据从一个控制器传递到另一个控制器是否可能?

我想将模型数据从一个控制器传递到另一个控制器。

[HttpPost]
        public ActionResult Personal(StudentModel student)
        {                          
                return RedirectToAction("nextStep", new { model = student});          
        }

        public ActionResult nextStep(StudentModel model)
        {           
            return View(model);
        }

in nextStep控制器型号值为空。 怎么做? 我需要 nextStep conreoller 中的 StudentModel 数据。


您正在使用RedirectToAction。它将发出 GET 请求。您可以通过两种方式在此处传递模型。

1. 临时数据

您需要将模型保存在 TempData 中并进行RedirectToAction。但限制是它只能用于立即请求。就你而言,这不是问题。你可以这样做TempData

public ActionResult Personal(StudentModel student)
{                          
       TempData["student"] = student;
       return RedirectToAction("nextStep", "ControllerName");          
}

public ActionResult nextStep()
{      
       StudentModel model= (StudentModel) TempData["student"];
       return View(model);
}

2.传入查询字符串

由于请求是 GET,我们可以将数据作为带有模型属性名称的查询字符串传递。 MVC 模型绑定器将解析查询字符串并将其转换为模型。

 return RedirectToAction("nextStep", new { Name = model.Name, Age=model.Age });

还请注意不建议在查询字符串中传递敏感数据.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将模型数据从一个控制器传递到另一个控制器 的相关文章

随机推荐