Blazor Server How to persist data across multiple tabs and refreshes(Blazor Server如何跨多个选项卡和刷新持久保存数据)
本文介绍了Blazor Server如何跨多个选项卡和刷新持久保存数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在编写需要为用户保存数据的Blazor Server应用程序。
我已经尝试了以下内容/以下内容不符合要求:
- 会话存储-因为它的作用域是浏览器选项卡,所以数据在刷新时消失/不在新选项卡上。
- 本地存储-跨多个选项卡工作并刷新,但会留在以后访问站点时使用(我不希望数据在多次访问期间保持不变)
- 有作用域的AppState方法-再次基于每个选项卡的每个电路。
我有一些想法,但不确定如何实施/是否是好想法:
- 使用本地存储,但可以在客户端断开连接时以某种方式将其清除,或者在本地存储中添加时间标记,并且只允许保持x时间。
- 以某种方式使用Cookie,可能是通过:Creating and Reading Cookies on Blazor Server Side
除此之外,关于如何实现这一点,我没有任何其他好的想法,因此欢迎任何想法/建议。
推荐答案
嗯,这对我来说不是独创的,但是只要登录用户连接,我就是这样为他们保留租户的。
public class GlobalService
{
public event Action<PropertyChangedEventArgs> PropertyChanged;
Subscriber _Tenant;
public Subscriber Tenant
{
get
{
return _Tenant;
}
set
{
if (!object.Equals(_Tenant, value))
{
var args = new PropertyChangedEventArgs() { Name = "Tenant", NewValue = value, OldValue = _Tenant, IsGlobal = true };
_Tenant = value;
PropertyChanged?.Invoke(args);
}
}
}
}
public class PropertyChangedEventArgs
{
public string Name { get; set; }
public object NewValue { get; set; }
public object OldValue { get; set; }
public bool IsGlobal { get; set; }
}
我在ConfigureServices中注册它,就像这样
services.TryAddScoped<GlobalService>();
这篇关于Blazor Server如何跨多个选项卡和刷新持久保存数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Blazor Server如何跨多个选项卡和刷新持久保存数据
基础教程推荐
猜你喜欢
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
