Blazor服务器中的全局可用值(并在运行时更改它们)



在Blazor服务器中设置appsettings.json"文件非常适合存储全局可访问的变量。但是,如果这些需要在运行时更改呢?例如,假设我们有一个"IsMaintenanceMode"的存储值。

鉴于;

  1. "IsMaintenanceMode"可能需要设置为"true";在运行时(然后将用户引导到维护页面)

  2. 如果我们使用中间件来检查这个值是否为True(即将用户重定向到维护页面),那么我们就不希望每次都在每个请求中查找这个变量-例如从数据库中。

传统上,这可能是使用应用程序变量完成的,但我只是不确定Blazor的最佳方法。

所以我的问题是-以一种可以"cached"的方式存储这个值的最佳方式是什么?为了方便查找,但也很容易在运行时更改?

谢谢你的建议。

StateServer.cs

public class StateServer {
public bool IsMaintenanceMode {get; set;}
}

添加到Startup.cs

public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<StateServer >();
}

Component.razor//可以是布局,主页等

@inject StateServer _stateServer
@if (_stateServer.IsMaintenanceMode){
<Warning />
}
else {
<Body />
}
@code {
}

或者,您可以在其中一个页面生命周期事件中检查该值,并导航到您喜欢的任何页面。

相关内容

  • 没有找到相关文章

最新更新