能否在VBHTML文件中注入IWebHostEnvironment并根据环境编写条件判断?
能否在VBHTML文件中注入IWebHostEnvironment并根据环境编写条件判断?
当然可以!ASP.NET Core的Razor框架同时支持C#和VB.NET语法的环境判断,只是和CSHTML相比有一些语法差异而已。下面是具体的实现步骤:
在VBHTML中注入IWebHostEnvironment
替代C#的@inject语法,VB.NET Razor使用如下的注入写法:@Inject Env As IWebHostEnvironment用VB语法编写环境条件判断
使用VB的If...Then结构来替代C#的大括号写法:@If Env.IsEnvironment("Development") Then ' 这里写仅在开发环境生效的内容或代码 <p>这段内容只在开发环境可见!</p> End If ' 也可以直接用内置方法判断生产/预发布环境 @If Env.IsProduction() Then <p>欢迎访问生产环境!</p> End If
关于你之前尝试的问题
System.Configuration.ConfigurationManager.AppSettings("Environment")是旧版ASP.NET Framework的用法,并不适用于ASP.NET Core。在ASP.NET Core中,配置系统已经更新,IWebHostEnvironment是官方推荐的获取当前宿主环境的方式——它会直接读取应用启动时配置的环境变量(比如ASPNETCORE_ENVIRONMENT),准确性和可靠性更高。
小提示
默认的ASP.NET Core项目模板已经自动注册了IWebHostEnvironment到依赖注入容器中,所以你不需要额外做任何配置就能直接使用上述写法。
备注:内容来源于stack exchange,提问作者kaz00ie
相关产品推荐
相关产品推荐

