在Blazor Server应用程序中,可以使用Session来在不同选项卡和刷新之间持久化数据。下面是一个示例:
services.AddSession(); // 添加Session服务 app.UseSession(); // 启用Session中间件
@page "/counter"
@inject IHttpContextAccessor HttpContextAccessor
@code { private int currentCount = 0; private ISession Session => HttpContextAccessor.HttpContext.Session;
protected override void OnInitialized()
{
if (Session.GetInt32("count") != null)
{
currentCount = (int) Session.GetInt32("count");
}
}
private void IncrementCount()
{
currentCount++;
Session.SetInt32("count", currentCount);
}
}
在该示例中,使用Session存储了一个计数器,可以在多个选项卡和刷新之间进行持久化。每次更新计数器时,都会将当前值存储在Session中。
需要注意的是,由于Session数据存储在服务器上,因此要谨慎使用Session,避免存储大量数据导致服务器性能下降。