In this article I will explain with an example, how to pass (send) data from Controller to View using Session in ASP.Net Core MVC.
Note: For enabling and configuring Session in ASP.Net Core, please refer my article Enable Session in ASP.Net Core.
You will need to import the following namespace.
using Microsoft.AspNetCore.Http;
The Controller consists of the following Action method.
Action method for handling GET operation
Inside this Action method, Session object is set.
A string value is set in the Session object using the SetString method of the HttpContext.Session property in Controller and the View is returned.
public class HomeController : Controller
    public IActionResult Index()
        //Set value in Session object.
        HttpContext.Session.SetString("Message", "Hello MVC!");
        return View();
Inside the View, the IHttpContextAccessor Interface object is injected in order to access the Session and its functions inside the View.
Note: For configuring IHttpContextAccessor in ASP.Net Core, please refer my article Using HttpContext in ASP.Net Core.
The value from the Session object is displayed in View using the GetString method of the HttpContext.Session property.
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor Accessor
    Layout = null;
<!DOCTYPE html>
    <meta name="viewport" content="width=device-width" />
ASP.Net Core MVC: Pass (Send) data from Controller to View using Session