在stackoverflow上读取this post想要在编译发布模式时加载不同的css。
代码:
@{ #if (Debug)
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
#else
<link href="@Url.Content("~/Content/Site-min.css")" rel="stylesheet" type="text/css" />
#endif
}
尝试2
@{ #if (Debug) }
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
@{ #else }
<link href="@Url.Content("~/Content/Site-min.css")" rel="stylesheet" type="text/css" />
@{ #endif }
我尝试以大写形式进行DEBUG 但是在编译Debug to Release
时没有任何改变没有效果答案 0 :(得分:7)
根据this SO post,如果你想要这种东西工作,你可以使用模型中的属性来驱动View的条件内容,所以C#设置模型的布尔值(IsDebug
,或者其他)通过编译时指令的东西,View依赖于它。
所以你的模型会结束这样的事情:
bool IsDebug = true;
#if (!DEBUG)
IsDebug = false;
#endif
并且您的View会执行以下操作:
@if(Model.IsDebug)
{
}
else
{
}
我猜你也可以使用ViewBag / ViewData来保存那个布尔值。
更新:
根据您的评论,这是可以做的事情:
创建一个继承自BaseController
。
Controller
类
public abstract class BaseController : Controller
{
...
protected BaseController()
{
bool indebug = false;
#if DEBUG
indebug = true;
#endif
ViewBag.InDebug = indebug;
}
}
让控制器继承此而不是Controller。
然后在你的_Layout.cshtml中你可以这样做:
@if (ViewBag.InDebug)
{
}
else
{
}
这似乎工作正常。