首页 > 解决方案 > 如何使用 Blazor 发出 http 请求?尝试但给我一个错误

问题描述

嘿伙计们,我有这个代码:

Treinos.json

{
  "TREINOS_SEMANA": {
    "Registros": 6,
    "DiasSemana": [
      {
        "DiaNum": "2",
        "DiaQtdeTreinos": 1,
        "DiaTreinos": [
          {
            "TreinoID": "32",
            "TreinoDiaSemana": "2",
            "TreinoDescricao": "INICIANTE",
            "TreinoCategoria": null
          }
        ]
      },
      {
        "DiaNum": "3",
        "DiaQtdeTreinos": 1,
        "DiaTreinos": [
          {
            "TreinoID": "32",
            "TreinoDiaSemana": "3",
            "TreinoDescricao": "INICIANTE",
            "TreinoCategoria": null
          }
        ]
      },
      {
        "DiaNum": "4",
        "DiaQtdeTreinos": 1,
        "DiaTreinos": [
          {
            "TreinoID": "32",
            "TreinoDiaSemana": "4",
            "TreinoDescricao": "INICIANTE",
            "TreinoCategoria": null
          }
        ]
      },
      {
        "DiaNum": "5",
        "DiaQtdeTreinos": 1,
        "DiaTreinos": [
          {
            "TreinoID": "32",
            "TreinoDiaSemana": "5",
            "TreinoDescricao": "INICIANTE",
            "TreinoCategoria": null
          }
        ]
      },
      {
        "DiaNum": "6",
        "DiaQtdeTreinos": 1,
        "DiaTreinos": [
          {
            "TreinoID": "32",
            "TreinoDiaSemana": "6",
            "TreinoDescricao": "INICIANTE",
            "TreinoCategoria": null
          }
        ]
      },
      {
        "DiaNum": "7",
        "DiaQtdeTreinos": 1,
        "DiaTreinos": [
          {
            "TreinoID": "32",
            "TreinoDiaSemana": "7",
            "TreinoDescricao": "INICIANTE",
            "TreinoCategoria": null
          }
        ]
      }
    ],
    "ErroMsg": false
  }
}

Treinos.cs

namespace BlazorApp.Classes
{
    public partial class Treinos
    {
        public TreinosSemana TreinosSemana { get; set; }
    }

    public partial class TreinosSemana
    {
        public long Registros { get; set; }

        public DiasSemana[] DiasSemana { get; set; }

        public bool ErroMsg { get; set; }
    }

    public partial class DiasSemana
    {
        public long DiaNum { get; set; }

        public long DiaQtdeTreinos { get; set; }

        public DiaTreino[] DiaTreinos { get; set; }
    }

    public partial class DiaTreino
    {
        public long TreinoId { get; set; }

        public long TreinoDiaSemana { get; set; }

        public string TreinoDescricao { get; set; }

        public object TreinoCategoria { get; set; }
    }
}

主页.razor

@page "/"
@inject HttpClient Http


@code {

    private Treinos treinos = new Treinos();

    protected override async Task OnInitializedAsync()
    {
        treinos = await Http.GetJsonAsync<Treinos>("sample-data/treinos.json");
        Console.WriteLine(treinos.TreinosSemana.Registros);
    }
}

但这给我一个错误:

blazor.webassembly.js:1 WASM:未处理的异常渲染组件:

blazor.webassembly.js:1 WASM:System.NullReferenceException:对象引用未设置为对象的实例。

blazor.webassembly.js:1 WASM:在 E:\Programação\Blazor\BlazorApp\Pages\Home.razor:12 中的 BlazorApp.Pages.Home.OnInitializedAsync () [0x0009b]

WASM:在 Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync () <0x1f47d40 + 0x00176> 在 <79f1a91c13df4c50b01e437f9a5bf79e>:0

WASM:在 Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask (System.Threading.Tasks.Task taskToHandle) <0x2160560 + 0x000f4> 在 <79f1a91c13df4c50b01e437f9a5bf79e>:0

我做错了什么,有人可以帮助我吗?

标签: c#httpblazor

解决方案


推荐阅读