C# Blazor在重新加载页面时将基本筛选数据保存到浏览器

C# Blazor在重新加载页面时将基本筛选数据保存到浏览器,c#,blazor-server-side,.net-5,C#,Blazor Server Side,.net 5,如何将对象中的数据保存到浏览器,并使用服务器端Blazor检索该数据 我有一个模型来过滤一个概述,但是如果你离开概述,然后回来,过滤器就不见了。这是一个非常高级的过滤器,所以每次都填写它并不是一个真正的选项 让我们做一个简化的例子: 公共类概览过滤器模型 { 公共字符串关键字{get;set;} public int PartnerId{get;set;} 公共枚举状态状态{get;set;} } 如何在浏览器中保存上述模型并再次检索?或者说没有这样的事情?我不想为此使用SQL数据库,也不想在

如何将对象中的数据保存到浏览器,并使用服务器端Blazor检索该数据

我有一个模型来过滤一个概述,但是如果你离开概述,然后回来,过滤器就不见了。这是一个非常高级的过滤器,所以每次都填写它并不是一个真正的选项

让我们做一个简化的例子:

公共类概览过滤器模型
{
公共字符串关键字{get;set;}
public int PartnerId{get;set;}
公共枚举状态状态{get;set;}
}

如何在浏览器中保存上述模型并再次检索?或者说没有这样的事情?我不想为此使用SQL数据库,也不想在服务器端使用任何数据库。

您可以使用Blazored.LocalStorage。它是由Chris Sainty开发的第三方库,用于在浏览器中存储跨页面的数据,您也可以从新选项卡访问这些数据。 只需从Nuget中提取库,在Startup类中注册服务,将其注入到您想要的任何页面或组件中,然后将您想要的任何数据存储在浏览器本地存储中

@inject Blazored.LocalStorage.ILocalStorageService localStorage
@代码{

protected override async Task OnInitializedAsync()
{
    await localStorage.SetItemAsync("name", "John Smith");
    var name = await localStorage.GetItemAsync<string>("name");
}
受保护的重写异步任务OnInitializedAsync()
{
等待localStorage.SetItemAsync(“name”、“John Smith”);
var name=await localStorage.GetItemAsync(“名称”);
}
}

也可以添加复杂的嵌套对象。 如果打开“开发人员选项”,则可以验证已存储在浏览器本地存储中的数据/模型

这里是github repo链接。您可以在此处找到所有文档:

谢谢!奇怪的是,BlazorI要求本地存储,但对于我的用例,Blazored的另一个库更有意义:谢谢分享
protected override async Task OnInitializedAsync()
{
    await localStorage.SetItemAsync("name", "John Smith");
    var name = await localStorage.GetItemAsync<string>("name");
}