【问题标题】:Blazor: Using local json file as storageBlazor:使用本地 json 文件作为存储
【发布时间】:2020-11-06 13:58:51
【问题描述】:

我正在编写小型客户端 Blazor 应用程序。为了避免使用任何数据库(并为其创建整个 API),因为我基本上只有一个单一类对象的列表,我想使用 json 文件。

我知道我可以从文件中读取: forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json"); 但是当我修改这个“预测”列表并尝试做这样的事情时:

await Http.PostAsJsonAsync("sample-data/weather.json", forecasts); 或者 await Http.PostAsJsonAsync<WeatherForecast[]>("sample-data/weather.json", forecasts); 它不保存更改。我检查了浏览器,它正在使用正确的数据进行 POST,但收到 404 作为回报。这样的数据修改后可以保存吗?

【问题讨论】:

  • 客户端应用?不-您不能轻松地将文件写入服务器。您必须添加一个 API 并调用它...

标签: c# json blazor blazor-client-side


【解决方案1】:

您要做的是从用户浏览器上的应用程序更改服务器上的文件。当用户访问您的 blazor 站点时,所有文件(设置为延迟加载的文件除外)都会下载到用户浏览器中。在应用程序在用户浏览器中生存和运行之后。


如果您不需要任何并发检查和真正的数据库功能,您应该构建一些允许静态文件访问的简单服务器,或者其他选项是使用来自 AWS S3 或 Azure Blob 存储的简单 blob 访问。


您可以查找here 客户端和服务器端 Blazor 之间的区别。 如果您需要在多个客户端之间共享持久数据,则需要实现一个服务器或服务,以便在您使用客户端 Blazor 时为您提供此功能。

【讨论】:

  • 好主意是让它在本地运行(我什至在创建项目时标记了“PWA”)。因此,在 Blazor(客户端和服务器端)中,存储数据的唯一方法是 DB?如果所有文件都被视为由服务器提供服务,那么服务器端和客户端之间有什么区别?
  • 如果你想在桌面上运行它,因为它是一个本地应用程序,并且使用文件系统,你可以将 electron.net github.com/ElectronNET/Electron.NET 添加到你的包中,并使用相同的代码,它将工作。也许你也需要保存文件
猜你喜欢
  • 2020-11-04
  • 2012-04-27
  • 2022-10-26
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 2018-01-26
  • 2022-01-13
  • 1970-01-01
相关资源
最近更新 更多