Problem
How to use Distributed Cache Tag Helper in ASP.NET Core MVC.
Solution
In an empty project, update Startup class to add services and middleware for MVC and Distributed Cache.
     - public void ConfigureServices(  
 
     -         IServiceCollection services)  
 
     -     {  
 
     -         services.AddDistributedRedisCache(options =>  
 
     -         {  
 
     -             options.Configuration = "...";  
 
     -         });  
 
     -   
 
     -         services.AddMvc();  
 
     -     }  
 
     -   
 
     -     public void Configure(  
 
     -         IApplicationBuilder app,  
 
     -         IHostingEnvironment env)  
 
     -     {  
 
     -         app.UseMvcWithDefaultRoute();  
 
     -     }  
 
 
 
 
Add a Controller.
     - public class HomeController : Controller  
 
     -  {  
 
     -      public IActionResult Index()  
 
     -      {  
 
     -          return View();  
 
     -      }  
 
     -  }  
 
 
 
 
Add a _ViewImports.cshtml page in Views folder. Add the directive to import tag helpers.
     - @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 
 
 
 
 
Add a Razor page (Index.cshtml).
     - <p>  
 
     -     Current Time: @DateTime.Now.ToString("hh:mm:ss")  
 
     - </p>  
 
     - <p>  
 
     -     <distributed-cache name="fiver-one"  
 
     -                        expires-after="@TimeSpan.FromMinutes(1)">  
 
     -         Cached Time: @DateTime.Now.ToString("hh:mm:ss")  
 
     -     </distributed-cache>  
 
     - </p>  
 
 
 
 
Run the sample, keep refreshing. You’ll notice that the cached time doesn’t refresh (until cache expires).
![]()
Discussion
Cache and Distributed Cache Tag Helper helps improve the performance of your application by caching view’s content, either in-memory or in a distributed cache (e.g. Redis).
Distributed Cache Tag Helper uses IDistributedCache to store the content in a distributed cache. To learn more about distributed caching, please refer to an earlier post here.
Attributes
Cache Tag Helper has the following attributes,
     - Expires-…
     Expiry related attributes control length of time cache is valid for. You could specify an absolute or sliding date/time.
     
      
     - Vary-by-…
     You could invalidate the cache if HTTP header, query string, routing data, cookie value or custom values. 
Source Code
GitHub