Updated on Kisan Patel
ASP.NET MVC offers us three options ViewData, ViewBag & TempData for passing data from controller to view and in next request. ViewData and View Bag are almost similar.
Controller File Code:
public ActionResult Index() { }
View File Code:
<p>Data: "@ViewData["mydata"].ToString()"</p>
Controller file Code:
public ActionResult Data() { }
View File Code:
<p> Data: "@ViewBag.mydata" </p>
You can use session to pass data between Multiple View and Controller
Controller File Code:
public ActionResult Data() }
View FileCode:
<p>@Session["data"J.ToString()</p>
TempData is also a dictionary derived from TempDataDictionary
class and stored in short lives session and it is a string key and object value. The difference is that the life cycle of the object. TempData keep the information for the time of an HTIP Request. This mean only from one page to another. This also work with a 302/303 redirection because it’s in the same HTTP Request. Helps to maintain data when you move from one controller to other controller or from one action to other action. In other words when you redirect, “Tempdata” helps to maintain data between those redirects. It internally uses session variables. Temp data use during the current and subsequent request only means it is use when you are sure that next request will be redirecting to next view. It requires typecasting for complex data. type and check for null values to avoid error. generally used to store only one time messages like error messages, validation messages.
public ActionResult Index() var model = new Review{) { Body = "Start", Rating=5 }; TempData["ModeIName"] = model; return RedirectToAction("About"); } public ActionResult About() { var model= TempData["ModeIName"); return View(model); }