在Blazor Server应用程序中,服务器端和客户端共享相同的数据可以通过以下方式实现:
DataService的类。public class DataService
{
private List data = new List();
public List GetData()
{
return data;
}
public void AddData(string item)
{
data.Add(item);
}
}
Startup.cs中将DataService注册为服务。public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddSingleton();
// ...
}
DataService。@page "/data"
@inject DataService dataService
Data:
@foreach (var item in dataService.GetData())
{
- @item
}
@code {
private string newItem;
private void AddItem()
{
dataService.AddData(newItem);
newItem = string.Empty;
}
}
在上述示例中,DataService类包含一个名为data的私有字段,用于存储共享数据。它提供了两个公共方法:GetData用于获取数据,AddData用于添加数据。
在Data组件中,我们通过将DataService注入为依赖项来访问共享数据。通过调用GetData方法,我们可以获取data列表并在组件中显示。
同时,我们还提供了一个输入框和一个按钮,用于向共享数据中添加新项。通过调用AddData方法,我们可以将新项添加到data列表中。
这样,无论是服务器端还是客户端发起的请求,它们都会共享相同的数据。