J’ai un contrôleur dans l’application ASP.NET MVC.
private GipDbContext db = new GipDbContext(); private Employee employeeObj; public ActionResult Edit(int? id) { Employee employee = db.Employees.Find(id); //employeeObj SET TO ANOTHER OBJECT employeeObj = employee; return View(employee); } public PartialViewResult TimeSeriesData(int? tsdataid) { TimeSeriesData tsobject = new TimeSeriesData(); // employeeObj RETURNING NULL foreach (var item in employeeObj.TimeSeriesData){ if (item.TimeSeriesDataID == tsdataid) { tsobject = item; break; } }
La première méthode appelée est Edit, puis lorsque TimeSeriesData est appelée employeeObj renvoie la valeur null, même si elle a été définie dans la méthode Edit. Des idées pourquoi?
Les contrôleurs sont instanciés pour chaque requête. Une fois que vous avez demandé TimeSeriesData
, le contrôleur créé pour la demande de Edit
a déjà été supprimé. Si vous devez conserver une donnée entre deux demandes, vous devez la placer dans Session
ou TempData
(qui utilisent toutes deux des sessions).