非泛型方法“HttpClient.GetAsync(string)”不能与类型参数一起使用

Ste*_*eve 2 blazor

我有这个注册代码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")但也出现错误。

Pet*_*ris 5

如果您想改用该GetFromJsonAsync方法,请执行以下操作:

  1. 安装包System.Net.Http.Json
  2. 引用命名空间:System.Text.JsonSystem.Net.Http.Json

要么到您的特定 razor 文件,要么到 /_Imports.razor 文件。

现在这段代码将完成工作...

movies = await client.GetFromJsonAsync<List<Movie>>("api/Movies"); 
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

1695 次

最近记录:

5 年,4 月 前