我有这个注册代码HttpClient
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddHttpClient("ServerAPI", client =>
client.BaseAddress = new Uri("http://localhost:xxxxx/"));
}
Run Code Online (Sandbox Code Playgroud)
为了使用它,我将它注入到我的 Blazor razor 页面,
@page "/Movies/FetchMovies"
@inject IHttpClientFactory http;
@using System.Text.Json
<MovieList Movies="movies" />
@code{
private List<Movie> movies;
protected override async Task OnInitializedAsync()
{
var client = http.CreateClient("ServerAPI");
movies = await client.GetAsync<List<Movie>>("api/Movies");
//movies = await client.GetFromJsonAsync<List<Movie>>("api/Movies");
}
}
Run Code Online (Sandbox Code Playgroud)
问题是这一行movies = await client.GetAsync<List<Movie>>("api/Movies");出现错误:
The non-generic method 'HttpClient.GetAsync(string)' cannot be used with type arguments
我尝试过,movies = await client.GetFromJsonAsync<List<Movie>>("api/Movies")但也出现错误。
如果您想改用该GetFromJsonAsync方法,请执行以下操作:
System.Net.Http.JsonSystem.Text.Json和System.Net.Http.Json要么到您的特定 razor 文件,要么到 /_Imports.razor 文件。
现在这段代码将完成工作...
movies = await client.GetFromJsonAsync<List<Movie>>("api/Movies");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |