Pass Data Between Razor Pages
Requirement: Visual studio 2022
1. using Query String:
index.cshtml
index.cshtml.cs
public IActionResult OnPost() {
var id = 101;
var name = "Raj";
return RedirectToPage("Dashboard", new { id = id, name = name });
}
Dashboard.cshtml
ID: @Model.Id
Name: @Model.Name
Dashboard.cshtml.cs
public int Id { get; set; }
public string Name { get; set; }
public void OnGet(int id, string name)
{
Id = id;
Name = name;
}
2. using TempData:
Tempone.cshml
Tempone.cshml.cs
public IActionResult OnPost()
{
TempData["Message"] = "Passing data between razor pages";
return RedirectToPage("TempTwo");
}
TempTwo.cshtml
@Model.Message
TempTwo.cshtml.cs
public string? Message { get; set; }
public void OnGet()
{
Message = TempData["Message"] as string;
}
3. using Session:
Configuration in program.cs file
// Add session services
builder.Services.AddSession(options = greater sign
{
options.IdleTimeout = TimeSpan.FromMinutes(30); // Set timeout
options.Cookie.HttpOnly = true; // Security settings
options.Cookie.IsEssential = true; // Required for GDPR compliance
});
// Use session
app.UseSession();
// assign the session value
HttpContext.Session.SetString("Username", "Raj");
//Get the session value
var username = HttpContext.Session.GetString("Username");