我今天正在写我的第一个Razor页面,不知道如何进入
#if debug
...
#else
...
#endif
我如何在Razor中做到这一点?
我今天正在写我的第一个Razor页面,不知道如何进入
#if debug
...
#else
...
#endif
我如何在Razor中做到这一点?
当前回答
我知道这不是对问题的直接回答,但我非常确定调试配置是实际在本地执行的事实的必然结果,您总是可以使用Request。IsLocal属性作为类似测试的调试。因此:
@if (Request.IsLocal)
{
<link rel="stylesheet" type="text/css" href="~/css/compiled/complete.css">
}
else
{
<link rel="stylesheet" type="text/css" href="~/css/compiled/complete.min.css">
}
其他回答
这适用于我的。net Core 3.0白色标签项目:
@{
#if CORPA
}
<button type="button" class="btn btn-warning">A Button</button>
@{
#else
}
<p>Nothing to see here</p>
@{
#endif
}
在.NET Core中,你可以使用环境标记帮助器来代替检查预处理器变量:
<environment include="Development">
<!--Debug code here-->
</environment>
我知道这不是对问题的直接回答,但我非常确定调试配置是实际在本地执行的事实的必然结果,您总是可以使用Request。IsLocal属性作为类似测试的调试。因此:
@if (Request.IsLocal)
{
<link rel="stylesheet" type="text/css" href="~/css/compiled/complete.css">
}
else
{
<link rel="stylesheet" type="text/css" href="~/css/compiled/complete.min.css">
}
对我来说,下面的代码运行得非常好。
当应用程序是调试我的按钮出现时,当是释放时,它们不会出现。
@if (this.Context.IsDebuggingEnabled)
{
<button type="button" class="btn btn-warning">Fill file</button>
<button type="button" class="btn btn-info">Export file</button>
}
默认情况下,MVC视图是不编译的,因此#IF DEBUG不能在视图中工作。如果你想编译视图以访问If DEBUG配置,你需要:
在Visual Studio中右键单击您的项目 卸载项目 编辑项目
将下面的属性从false更改为true
<MvcBuildViews>true</MvcBuildViews>
重新加载项目,然后视图将被编译。
唯一的解决办法就是在你的代码后面加上一个函数
public static Boolean DEBUG(this System.Web.Mvc.WebViewPage page)
{
var value = false;
#if(DEBUG)
value=true;
#endif
return value;
}
然后从视图中调用它:
if(DEBUG())
{
//debug code here
}
else
{
//release code here
}