C# 如何根据ASP.NET framework中的配置部署不同的html

C# 如何根据ASP.NET framework中的配置部署不同的html,c#,asp.net,razor,C#,Asp.net,Razor,在ASP.NET核心中,有如下html标记 <environment include="Staging">THIS IS STAGING</environment> 这是登台 但我对在框架中工作有点困惑,我试图做一些类似的事情 <div class=@(System.Environment.GetEnvironmentVariable() == "Staging" ? "RED" : "GREY"")> 据我所知,如果不编写自定义内容(无论是在生成过程中

在ASP.NET核心中,有如下html标记

<environment include="Staging">THIS IS STAGING</environment>
这是登台
但我对在框架中工作有点困惑,我试图做一些类似的事情

<div class=@(System.Environment.GetEnvironmentVariable() == "Staging" ? "RED" : "GREY"")>

据我所知,如果不编写自定义内容(无论是在生成过程中运行特定命令/脚本),还是在文件名“listofenties.staging.cshtml”中使用部署环境的文件名,就无法满足您对ASP.NET Core的要求然后再次编写一些自定义代码,根据appsettings中的设置选择要渲染的正确文件。我个人喜欢web.config转换,但在asp.net core中还没有找到这样的解决方案。即使使用较旧的web.config转换,也不会使用内置的发布过程在发布时包括/排除特定文件。我想你仍然需要写一些习惯性的东西来做你想做的事情。我个人遇到的最好的事情就是坚持html中的“if staging else”,就像你说的你试图避免的那样。对未来的开发人员来说,维护它是很直观的,即使它看起来像是在里面添加了额外的意大利面。

是的,我最后在我的
web.configs
中添加了一个键,它将根据配置进行转换,并且只有几个
@if(System.web.configuration.WebConfigurationManager.AppSettings[“Environment”]=“Release”)
我的布局页面中的行。基本上只是为了在登台模式下向用户突出显示。