【发布时间】:2021-07-01 03:44:40
【问题描述】:
我创建了一个控制器 HttpGet 来获取特定的用户数据,但是当我在客户端调用 API 时,它没有显示结果。
控制器
[HttpGet("{Id}/{Username}")]
public ApplicationUser Details(string Id, string Username)
{
return _dataAccessProvider.GetAspNetUsersSingleRecord(Id, Username);
}
HttpGet的客户端调用API
@code {
private UserProfile[] forecasts;
protected override async Task OnInitializedAsync()
{
forecasts = await Http.GetFromJsonAsync<UserProfile[]>("Authentication/ed131c76-4a3a-4626-aec5-3db534f14a30/amrita");
}
}
GetAspNetUsersSingleRecord
public ApplicationUser GetAspNetUsersSingleRecord(string Id, string Username)
{
return _context.applicationUser.FirstOrDefault(t => t.Id == Id && t.UserName == Username);
}
遇到这个错误
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] 未处理的异常呈现组件:无法将 JSON 值转换为 BlazorWebAssemblyFrontEnd.Pages.UserProfile[]。 路径:$ |行号:0 |字节位置内线:1。 System.Text.Json.JsonException:无法转换 JSON 值 到 BlazorWebAssemblyFrontEnd.Pages.UserProfile[]。路径:$ | 行号:0 | BytePositionInLine: 1. 在 System.Text.Json.ThrowHelper.ThrowJsonException_DeserializeUnableToConvertValue (System.Type propertyType) in :0 at System.Text.Json.Serialization.Converters.IEnumerableDefaultConverter
2[TCollection,TElement].OnTryRead (System.Text.Json.Utf8JsonReader& reader, System.Type typeToConvert, System.Text.Json.JsonSerializerOptions options, System.Text.Json.ReadStack& state, TCollection& value) <0x3005988 + 0x001de> in <filename unknown>:0 at System.Text.Json.Serialization.JsonConverter1[T].TryRead (System.Text.Json.Utf8JsonReader& 阅读器,System.Type typeToConvert, System.Text.Json.JsonSerializerOptions 选项, System.Text.Json.ReadStack& 状态,T& 值) in :0 在 System.Text.Json.Serialization.JsonConverter1[T].ReadCore (System.Text.Json.Utf8JsonReader& reader, System.Text.Json.JsonSerializerOptions options, System.Text.Json.ReadStack& state) <0x30048a8 + 0x00292> in <filename unknown>:0 at System.Text.Json.JsonSerializer.ReadCore[TValue] (System.Text.Json.Serialization.JsonConverter jsonConverter, System.Text.Json.Utf8JsonReader& reader, System.Text.Json.JsonSerializerOptions options, System.Text.Json.ReadStack& state) <0x2ff9b20 + 0x0002a> in <filename unknown>:0 at System.Text.Json.JsonSerializer.ReadCore[TValue] (System.Text.Json.JsonReaderState& readerState, System.Boolean isFinalBlock, System.ReadOnlySpan1[T] 缓冲区, System.Text.Json.JsonSerializerOptions 选项, System.Text.Json.ReadStack& 状态, System.Text.Json.Serialization.JsonConverter converterBase)
- 0x00058> 在 System.Text.Json.JsonSerializer.ReadAsync[TValue] (System.IO.Stream utf8Json, System.Type returnType, System.Text.Json.JsonSerializerOptions 选项, System.Threading.CancellationToken cancelToken) 在 :0 处 System.Threading.Tasks.ValueTask
1[TResult].get_Result () <0x309b428 + 0x00034> in <filename unknown>:0 at System.Net.Http.Json.HttpContentJsonExtensions.ReadFromJsonAsyncCore[T] (System.Net.Http.HttpContent content, System.Text.Encoding sourceEncoding, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken) <0x2fedb48 + 0x00218> in <filename unknown>:0 at System.Net.Http.Json.HttpClientJsonExtensions.GetFromJsonAsyncCore[T] (System.Threading.Tasks.Task1[TResult] 任务响应, System.Text.Json.JsonSerializerOptions 选项, System.Threading.CancellationToken cancelToken) 在 :0 处 BlazorWebAssemblyFrontEnd.Pages.Profile.OnInitializedAsync () [0x00033] 在 C:\Users\yaps\source\repos\BlazorWebAssemblyFrontEnd\Pages\Profile.razor:44 在 Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync () 在 :0 处 Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask (System.Threading.Tasks.Task taskToHandle) 在 :0
【问题讨论】:
标签: asp.net-web-api http-get blazor-webassembly