首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Blazor WebAssembly读取类库中的JSON文件

如何从Blazor WebAssembly读取类库中的JSON文件
EN

Stack Overflow用户
提问于 2021-09-22 12:50:57
回答 1查看 441关注 0票数 1

我正在尝试读取驻留在剃须刀类库中的JSON文件。我已经将它添加到了www.root文件夹中,该文件夹用于库中的静态资产,类似于访问静态资产的指南(css,js文件)。

然后,我试图在blazor组件的OnInitializedAsync()事件中读取这个文件,如下所示:

代码语言:javascript
运行
复制
protected async override Task OnInitializedAsync()
{
    MenuItems = await Http.GetFromJsonAsync<List<MenuItem>>("_content/[LibraryName]/sitemap.json");
    await base.OnInitializedAsync();
}

我也尝试过不使用_content部分:

代码语言:javascript
运行
复制
protected async override Task OnInitializedAsync()
{
    MenuItems = await Http.GetFromJsonAsync<List<MenuItem>>("sitemap.json");
    await base.OnInitializedAsync();
}

这两个调用最后都有以下异常:

System.InvalidOperationException:提供了无效的请求URI。请求URI必须是绝对URI,或者必须设置BaseAddress。

基于blazor模板,它从应用程序中的wwwroot文件夹中读取天气预报JSON文件。我试图做同样的事情,但是使用类库之外的wwwroot文件夹。我似乎找不到如何实现这一目标的指导。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-22 17:16:21

主要错误是

请求URI必须是绝对URI或必须设置BaseAddress。

这是奇怪的,通常HttpClient是正确配置在程序或启动。

那么:您的Http来自哪里?您在启动代码中更改了什么?你应该有这样的

代码语言:javascript
运行
复制
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69284619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档