【问题标题】:How do I access env.IsDevelopment() from a Blazor page?如何从 Blazor 页面访问 env.IsDevelopment()?
【发布时间】:2019-09-06 01:23:45
【问题描述】:

我想使用 env.IsDevelopment() 来控制我在 Blazor 页面上看到的内容。

我可以在Startup 类中添加一个单例:

public static IWebHostEnvironment Env { get; private set; }

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    Env = env;
}

或者还有其他方法可以通过实例变量访问IWebHostEnvironment(或Startup)吗?

【问题讨论】:

  • 您可以通过 Startup 构造函数注入IWebHostEnvironment,使其在ConfigureServices 之前可用。应该能够从那里将其添加到服务集合中并将其注入到视图中
  • 如果失败,请创建您自己的服务来保存所需的信息并在需要的地方注入。
  • 好的。大吃一惊 - 没有意识到 Startup 正在使用注射!

标签: c# asp.net-core blazor


【解决方案1】:

事实证明,我可以通过注射来做到这一点。我在我的页面上添加了以下内容:

@using Microsoft.AspNetCore.Hosting;
@using Microsoft.Extensions.Hosting;
@inject IWebHostEnvironment Env

这让我可以做这样的事情:

@if ( Env.IsDevelopment() )
{
    <div>Some content that I'm testing and don't want on the server yet</div>
}

谢谢@Nkosi!

【讨论】:

  • 精准 - 非常适合我
猜你喜欢
  • 2020-10-24
  • 2019-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-04
  • 2020-08-14
  • 1970-01-01
相关资源
最近更新 更多