Comment passer des données de modèle d’un contrôleur à un autre contrôleur

transmettre des données de modèle à un contrôleur à un autre contrôleur est-il possible?

Je souhaite transmettre les données de modèle à un contrôleur ou à un autre contrôleur.

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

dans le modèle de contrôleur nextStep , la valeur est null. Comment faire? J’ai besoin de données StudentModel dans nextStep conreoller.

Vous utilisez RedirectToAction . Il émettra une requête GET. Il existe deux manières de transmettre votre modèle ici.

1. TempData

Vous devez conserver le modèle dans TempData et créer RedirectToAction. Cependant, la ressortingction est qu’il ne sera disponible que pour la demande immédiate. Dans votre cas, ce n’est pas un problème. Vous pouvez le faire avec 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. Passer une chaîne de requête

Comme la requête est GET, nous pouvons transmettre les données sous forme de chaîne de requête portant le nom de la propriété du modèle. Le classeur de modèle MVC va résoudre la chaîne de requête et la convertir en tant que modèle.

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

Prenez également une note en passant des données sensibles dans une chaîne de requête n’est pas conseillé .