MVC6剃须刀如何检测调试模式?

时间:2014-11-29 10:03:04

标签: asp.net-mvc razor asp.net-core-mvc

在Razor的早期版本中,我会通过呈现看起来像这样的部分视图来有条件地加载脚本的缩小/调试版本:

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

如果MVC6,vNext,VS2015,或者其他任何你称之为:)我不知道如何做到这一点。谁知道怎么做?

3 个答案:

答案 0 :(得分:8)

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

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

捆绑和缩小将使用Gulp或Grunt等任务处理。

我在这里详细介绍了新方法: http://www.davepaquette.com/archive/2015/05/05/web-optimization-development-and-production-in-asp-net-mvc6.aspx

答案 1 :(得分:3)

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

#if DEBUG
            ViewBag.IsDebug = true; 
#endif

然后在你看来:

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

答案 2 :(得分:1)

您可以在asp.net mvc中使用bundling