我正在为我的REST API创建Web客户端,我想在表中添加一个包含异步功能结果的字段。
@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模板)构成。这是一个错误还是我不能那样做?谢谢。