从获取请求获取null,但上下文返回值

时间:2019-11-20 16:15:25

标签: c# asp.net blazor-server-side

我从数据库返回项目的后端看起来像这样

    // GET: api/Members
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Members>>> GetMembers()
    {
        return await _context.Members.ToArrayAsync();
    }

可以确认我正在获取数据

enter image description here

我的目标达到了终点

private async Task GetMembers()
{
    _members = await Http.GetJsonAsync<Members[]>("api/Members");
}

但是我从“成员”那里得到空值 “成员”是一个数组

private Members[] _members;

这是我空的消息

enter image description here

我在做什么错了?

编辑:成员和_members在图片和帖子中是相同的引用

2 个答案:

答案 0 :(得分:0)

看起来您的htttp请求无效。您应该尝试对请求使用HttpClient并执行以下操作:

HttpClient client = new HttpClient();

HttpResponseMessage response = await client.GetAsync("yourtUrl");

Members [] members = await response.Content.ReadAsAsync<Members[]>();

答案 1 :(得分:0)

所以我在Blazor http注入方面遇到问题,因此我将该服务注入为范围服务

services.AddScoped<MembersService>();

然后更改了后端服务

//GET: api/MembersService
[HttpGet]
public async Task<List<Members>> GetMembersAsync()
{
     return new List<Members>(_context.members);
}

请注意,我需要在那里等候。

然后在客户端上

private async Task GetMembers()
{
    _members = await memberService.GetMembersAsync();
}

_members是一个列表

private List<Members> _members;