【问题标题】:Blazor requesting a json fileBlazor 请求 json 文件
【发布时间】:2020-05-14 12:10:26
【问题描述】:

我正在尝试从服务器检索数据。但我无法从服务器获取 json 文件。我将我的 json 文件放在 wwwroot/data/Users.json 中。这是我的代码。我收到此异常:未处理的异常呈现组件:找不到路径“/data/Users.json”的一部分。

@page "/"

@code{
    public class User
    {
        public string username;
        public string password;
    }
}
@{ 
    string json = System.IO.File.ReadAllText("data/Users.json");
    User mahan = Newtonsoft.Json.JsonConvert.DeserializeObject<User>(json);

<body>
    <h1>Usernsme: @mahan.username</h1>
</body>

【问题讨论】:

  • 在该行上方添加行 System.IO.File.WriteAllText("data/UsersTest.json", "test") 并查看新文件出现的位置。
  • 我做了 System.IO.File.WriteAllText("data/UsersTest.json", "test") 但它又说同样的错误。我尝试了 System.IO.File.WriteAllText("UsersTest.json", "test") 并且它工作但现在该文件不在我项目的任何目录中。我不知道它将文件保存在哪里,但我猜它保存在 iis 工作进程目录中。
  • Blazor 服务器还是 Blazor WebAssembly?
  • 这是 Blazor WebAssembly
  • 如果不需要,请勿使用 NewtonSoft。 Blazor 正在使用 System.Text.Json 。

标签: c# json asp.net-core blazor


【解决方案1】:

在 Blazor Server 中,您可以使用 ReadAllText("wwwroot/data/Users.json");

在 Blazor WebAssembly 中,您不提供 wwwroot/ 部分,但由于 ReadAllText() 在那里不受支持,这并不重要。

在 WebAssembly 下你可以await Http.GetStringAsync("data/Users.json");

查看 FetchData.razor 和 weather.json 以获取完整示例。

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 2021-12-26
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2021-05-04
    • 2013-10-26
    • 2018-02-08
    相关资源
    最近更新 更多