Skip to main content

TempData in Asp.Net MVC

What is TempData:

TempData in ASP.Net MVC is dictionary object derived from TempDataDictionary. TempData class which retains the values for subsequent HTTP requests where as ViewBag and ViewData retains value only for the current request.

Important Note:

The important point here is TempData stores it values in session. In that case you may think What’s the difference between TempData in ASP.NET MVC and Session?” or “Why we have TempData dictionary object?, Why can’t we use the Session object directly?”

The answer is simple. TempData gets destroyed sooner than the session object. That's whenever it is used(read) in subsequent HTTP request that is in the next controller then it will automatically get destroyed whereas session objects exists until we manuallyt destroys it.   But if needed we can persist the tempdata for subsequent requests too. I will explain how to persist the tempdata in asp.net mvc in my next article.

When we can use TempData?
1. TempData is mainly used when we need to pass values from one controller action to another controller action.
2. And also if we need to pass error messages to an error page we can use TempData(Again it is nothing but controller to controller redirection)

Here i will explain how to add values into TempData, how to read values from TempData and how to send values from one controller to another controller using TempData.

1. I have created a new project in Visual Studio 2013 and named it as TempDataExperiment.

2. And in the next screen i have selected Empty template and selected MVC in Ad folders and core references for block.

3. Now i have added a model class called Student.cs and added the required properties. Below is the model which i defined.

4. Now inside Controller folder i have added the controller StudentController.cs and i have defined the three controller actions.  On the first action i am showing Add TempData & Redirect Button. While clicking on it it will redirect to the next controller action

Below is the controller code.

Below is the razor view code for first action and the third action.



Comments

Popular posts from this blog

Code to create log files in C#.Net|Asp.Net

Introduction: In my previous article I have explained about how to create, delete and check whether the directory exists using C#.Net . In this article I am going to explain about  How to create log files in C#.Net. Explanation: Log files are useful to track any runtime errors and exceptions in all the applications. Below code will code will get the Message and Pagename as the input and creates the log file in that date. For that first i have imported below two namespaces.

Dynamically programmatically add contols at run time Asp.Net

Introduction: In my previous article I have explained about What is View State? How to Store and retrieve values from View State . In this article I am going to explain how to add controls programmatically on run time. Explanation: This example adds a text box and button to a Web Forms page at run time. It also dynamically binds an event handler to the button's   Click   event. The handler displays the values of the dynamically generated text box. The controls are added into a   Panel   Web server control, which acts as a placeholder. The controls are separated in the panel with line breaks (HTML <BR> elements), which are added to the panel using the   LiteralControl   control.

Code To Convert rupees(numbers) into words using C#.Net

Introduction: In my previous article I have explained about how to validate emailid using javascript . In this article I am going to explain about code used to convert rupees(numbers) into words using C#.Net . Explanation: For explanation purpose I have a page. It has a textbox to input the numbers. And when you click on the convert to words button then it will convert the input numbers into words and shows it in the below label. Below is the C# code used to do this functionality. public static string NumbersToWords( int inputNumber) {     int inputNo = inputNumber;     if (inputNo == 0)         return "Zero" ;     int [] numbers = new int [4];     int first = 0;     int u, h, t;     System.Text. StringBuilder sb = new System.Text. StringBuilder ();     if (inputNo < 0)     { ...