
TempData is next to ViewBag and ViewData a common way to handle data for Requests and Views.
ViewData and ViewBag is only available in the current request and current View. TempData has the functionality to store data from one request to another. Keys inside TempData will be removed if you read them once!
In older versions TempData was able to use by defaule. In ASP.NET Core it is also built-in by default, but not active. It wont work if you do not activate some stuff.
Sessions
First of all the TempData is based on Sessions. So you have to add a Session Middleware to the ASP.NET Core Pipeline.
Otherwise it always will be null. You will not get any error!
1services.AddSession();
You also need a TempData Provider.
1services.AddSingleton<ITempDataProvider, CookieTempDataProvider>();
Here it is a cookie provider which means all TempData stuff will be put into a cookie from request A and will be read again in request B.
Now you also have to use the Session registration:
1app.UseSession();
Source
1public void ConfigureServices(IServiceCollection services)
2{
3 // Add framework services.
4
5 services.AddMvc();
6
7 services.AddSingleton<ITempDataProvider, CookieTempDataProvider>();
8 services.AddSession();
9
10 // Adds a default in-memory implementation of IDistributedCache.
11 services.AddDistributedMemoryCache();
12}
13
14public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
15{
16 loggerFactory.AddConsole(Configuration.GetSection("Logging"));
17 loggerFactory.AddDebug();
18
19 app.UseDeveloperExceptionPage();
20
21 app.UseStaticFiles();
22
23 app.UseSession();
24
25 app.UseMvc(routes =>
26 {
27 routes.MapRoute(
28 name: "default",
29 template: "{controller=Home}/{action=Index}/{id?}");
30 });
31}
Now you can use the TempData to pass data from one action to another.
1public class TempDataDemoController : Controller
2{
3 public IActionResult RequestA()
4 {
5 ViewData["MyKey"] = "Hello TempData!";
6
7 return RedirectToAction("RequestB");
8 }
9
10 public IActionResult RequestB()
11 {
12 return Content(ViewData["MyKey"] as string);
13 }
14}
Related articles

Sep 11, 2017 · 1 min read
ASP.NET Core 2.0 Upgrade causes HTTP 502
A lot of guys run into an error during the upgrade fom ASP.NET Core 1.x to ASP.NET Core 2.0: HTTP Error 502.5 - Process Failure
Let's Work Together
Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.

Comments