首页 > 解决方案 > Blazor 的 Web api 基本 URL 的全局变量

问题描述

目前,我有这个工作的 Blazor(服务器项目),它只有一个按钮,它发出一个 Web Api GET 请求,它可以正常工作。

这是我的ConfigureServices方法

public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSingleton<HttpClient>();         
    }

在我的Index.razor

@page "/"
@inject HttpClient http;
@using Models

<button @onclick="@GetMovies">Get Movies</button>

<table>
    <thead>
        <tr><th>Movie</th></tr>
    </thead>
    <tbody>
        @foreach(var movie in @Movies)
        {
        <tr><td>@movie.MovieTitle</td></tr>
        }
    </tbody>
</table>

@code{
    List<Movie> Movies;

    private async Task GetMovies()
    {
        Movies = await http.GetJsonAsync<List<Movie>>("http://localhost:54124/api/Movies");
    }
}

如何http://localhost:54124像全局变量一样只放入一个位置?在ConfigureServices方法上做吗?

标签: c#blazorblazor-server-side

解决方案


你应该把它存储在appsettings.json.

如果您使用的是 WASM,appsettings.json将在wwwroot.

为了从中获得价值,您可以检查这个问题,根据 .net 核心的版本,我的答案在哪里发生了变化,并且有不止一种方法可以做到这一点。


推荐阅读