Я создаю веб-клиент для своего REST API и хочу добавить в свою таблицу поле, содержащее результат асинхронной функции.
@foreach(Product item in products)
{
<tr>
<th>@item.Name</th>
<th>@item.Amount</th>
<th>@GetUnit(item.UnitID).Result</th>
<th>@item.PriceNetto</th>
</tr>
}
async Task<string> GetUnit(Guid id)
{
string a = "https://localhost:5001/api/Units/";
a += id.ToString();
var temp = await Http.GetJsonAsync<Unit>(a); //it fails here
return temp.Name;
}
Короче, у меня есть список продуктов и товаровв списке есть свойство "UnitID", которое я использую для запроса GET. Когда я помещаю где-нибудь в коде .Result
после результата моей асинхронной функции, отладчик Visual Studio просто пропускает строку, отвечающую за вызов API и «кирпичиков» всего приложения без ошибок и исключений. Затем мне нужно перезапустить проект.
Я пытался создать вторую функцию только для возврата GetUnit(id).Result
, но она ничего не дала. Я пытался вернуть весь объект Unit, а затем в таблицу GetUnit(item.UnitID).Name
, но он просто представлял объект (я думаю ...). Кажется, все, что мне нужно, это сделать с .Result
, но когда я это делаю, это не работает.
Мой API сделан на .Net Core 2.2, а мой клиент на .Net Core 3.0 (шаблон Blazor). Это ошибка или я просто не могу это сделать таким образом? Спасибо.