Blazor:使用本地 json 文件作为存储
Blazor: Using local json file as storage
我正在编写小型客户端 blazor 应用程序。为了避免使用任何数据库(并为其创建整个 API),因为我基本上只有一个 class 对象的列表,我想使用 json 文件。
我知道我可以从文件中读取:
forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
但是当我修改这个“forecasts”列表并尝试做这样的事情时:
await Http.PostAsJsonAsync("sample-data/weather.json", forecasts);
要么
await Http.PostAsJsonAsync<WeatherForecast[]>("sample-data/weather.json", forecasts);
它不保存更改。我检查了浏览器,它正在使用正确的数据执行 POST,但在 return 中收到 404。这样的数据修改后是否可以保存?
您要做的是从用户浏览器上的应用程序更改服务器上的文件。当用户访问您的 blazor 站点时,所有文件(设置为延迟加载的文件除外)都会下载到用户浏览器中。在应用程序在用户浏览器中生存和运行之后。
如果您不需要任何并发检查和真正的数据库功能,您应该构建一些允许静态文件访问的简单服务器,或者其他选项是使用来自 AWS S3 或 Azure Blob 存储的简单 blob 访问。
您可以查看here 客户端和服务器端 Blazor 之间的区别。
如果您需要在多个客户端之间共享持久数据,您将需要实现一个服务器或服务,如果您使用客户端 Blazor,则允许这样做。
我正在编写小型客户端 blazor 应用程序。为了避免使用任何数据库(并为其创建整个 API),因为我基本上只有一个 class 对象的列表,我想使用 json 文件。
我知道我可以从文件中读取:
forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
但是当我修改这个“forecasts”列表并尝试做这样的事情时:
await Http.PostAsJsonAsync("sample-data/weather.json", forecasts);
要么
await Http.PostAsJsonAsync<WeatherForecast[]>("sample-data/weather.json", forecasts);
它不保存更改。我检查了浏览器,它正在使用正确的数据执行 POST,但在 return 中收到 404。这样的数据修改后是否可以保存?
您要做的是从用户浏览器上的应用程序更改服务器上的文件。当用户访问您的 blazor 站点时,所有文件(设置为延迟加载的文件除外)都会下载到用户浏览器中。在应用程序在用户浏览器中生存和运行之后。
如果您不需要任何并发检查和真正的数据库功能,您应该构建一些允许静态文件访问的简单服务器,或者其他选项是使用来自 AWS S3 或 Azure Blob 存储的简单 blob 访问。
您可以查看here 客户端和服务器端 Blazor 之间的区别。 如果您需要在多个客户端之间共享持久数据,您将需要实现一个服务器或服务,如果您使用客户端 Blazor,则允许这样做。