Я пытаюсь получить данные из API на своей странице бритвы, чтобы использовать эти данные. Я успешно получил данные из API с помощью асинхронной функции и пытаюсь отправить их на страницу бритвы, но они не передаются на страницу бритвы с помощью вызова обратного просмотра, даже если эти данные присутствуют при передаче дюймы
Я установил точку останова здесь, и все данные находятся в объекте return View(standingsParent);
, но после передачи на страницу @Model.ToString();
равно NullReferenceException
Я думал об удалении асинхронной функции, но думал, что это замедлит мой сайт из-за ожидания ответа API. Я не пробовал ничего более заслуживающего упоминания и тщательно исследовал это без всякой удачи.
Здесь я возвращаю вид
StandingsParent standingsParent;
private async Task LoadTable()
{
standingsParent = await Football.LoadFootballTable();
}
public async Task<ViewResult> Table()
{
await LoadTable();
return View(standingsParent);
}
Загрузить табличную функцию
public static async Task<StandingsParent> LoadFootballTable(string tableId = "PL")
{
string url = $"https://api.football-data.org/v2/competitions/{tableId}/standings?standingType=TOTAL";
HttpResponseMessage response = await ApiHelper.ApiClient.GetAsync(url);
using (response)
{
if (response.IsSuccessStatusCode)
{
//Region region = await response.Content.ReadAsAsync<Region>();
StandingsParent standings = await response.Content.ReadAsAsync<StandingsParent>();
return standings;
}
else
{
throw new System.Exception(response.ReasonPhrase);
}
}
}
APIClient
public static HttpClient ApiClient { get; set; }
public static void InitialiseClient()
{
ApiClient = new HttpClient();
ApiClient.DefaultRequestHeaders.Accept.Clear();
ApiClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
ApiClient.DefaultRequestHeaders.Add("X-Auth-Token", "MyToken");
}
My View
@page
@using CoreWebApp.Models.Football
@model StandingsParent
<h1>Table</h1>
<p>
@Model.ToString();
</p>
Я ожидаю, что какой-то вывод просто покажет, что данные предназначены для манипулирования, но все, что я сейчас получаю, это
NullReferenceException
Ссылка на объект не установлена для экземпляра объекта.