Используйте TempData, когда вам нужно, чтобы данные были доступны только для следующего запроса.
TempData["myInfo"] = "my info";
Затем в следующем запросе он будет там ... но после этого пропадет.
Используйте ViewBag для того, чтобы большая часть ваших дополнительных данных была передана вашему представлению, кроме @ model
ViewBag.MyInfo = "my info";
Затем получите доступ к нему из своего представления.
Используйте ViewData для доступа/ введите точно такую же информацию, что и ViewBag, за исключением коллекции вместо свойств динамического объекта.
ViewData["MyInfo"]
обращается к точно таким же данным, что и ViewBag.MyInfo
Обратите внимание, что я использовал строки, но они могут хранить любой объект по вашему желанию.
Еще одна вещь, на которую следует обратить внимание: TempData и ViewData - это словари, в которых хранятся значения объектов, поэтому при их использовании вы должны приводить их к их исходному типу.Однако ViewBag использует динамический, и вам не всегда нужно приводить его, так как это делается во время выполнения.Некоторые методы (например, методы Extension) не могут обрабатывать динамические данные, поэтому вам придется приводить их в таких случаях.