Asp.net mvc MVC6 razor如何检测调试模式?

Asp.net mvc MVC6 razor如何检测调试模式?,asp.net-mvc,razor,asp.net-core-mvc,Asp.net Mvc,Razor,Asp.net Core Mvc,在Razor的早期版本中,我会有条件地通过呈现类似以下内容的局部视图来加载脚本的缩小/调试版本: @if (Context.IsDebuggingEnabled) { <script src="~/debug.js"></script> } else { <script src="~/release.js"></script> } @if(Context.IsDebuggingEnabled) { } 其他的 { } 如果是MV

在Razor的早期版本中,我会有条件地通过呈现类似以下内容的局部视图来加载脚本的缩小/调试版本:

@if (Context.IsDebuggingEnabled)
{
    <script src="~/debug.js"></script>
}
else
{
    <script src="~/release.js"></script>
}
@if(Context.IsDebuggingEnabled)
{
}
其他的
{
}

如果是MVC6、vNext、VS2015,或者你管它叫什么:)我不知道如何做到这一点。有人知道怎么做吗?

您可以在asp.net mvc中使用

在MVC6中,您可以使用环境标记帮助器加载不同版本的脚本,具体取决于开发环境和生产环境。这基于ASPNET_ENV环境变量的值

<environment names="Development">            
    <script src="~/debug.js"></script>
</environment>
<environment names="Staging,Production">
    <script src="~/release.js"></script>
</environment>

捆绑和缩小将使用一个任务来处理,比如吞咽或咕噜

我在这里详细介绍了新方法:

有点旧,但您可以在控制器中创建一个ViewBag(或会话对象),并将其传递给如下ViewBag

#if DEBUG
            ViewBag.IsDebug = true; 
#endif
那么在你看来,

@if (ViewBag.IsDebug)
    {
    <script src="~/debug.js"></script>
}
else
{
    <script src="~/release.js"></script>
}
@if(ViewBag.IsDebug)
{
}
其他的
{
}

在以前的版本中,您应该使用绑定。我使用了绑定,但我发现它不如使用任务运行程序(如gulp)预处理文件。问题是关于MVC6的,它不支持较旧的运行时绑定。