I\'ve got a conditional compilation symbol I\'m using called \"RELEASE\", that I indicated in my project\'s properties in Visual Studio. I want some particular CSS to be app
Below is the Razor syntax for conditional compiler directives. It loads the developer version of jquery when DEBUG variable is set in VS profile or web.config. Otherwise the min version is loaded.
@{
#if (DEBUG)
}
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.js"></script>
@{
#else
}
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>
@{
#endif
}
A better, more generic solution is to use an extension method, so all views have access to it:
public static bool IsReleaseBuild(this HtmlHelper helper)
{
#if DEBUG
return false;
#else
return true;
#endif
}
You can then use it like follows in any view (razor syntax):
@if(Html.IsReleaseBuild())
...
You can use ViewBag instead of viewmodel (but viewmodel-like approach is better) :
Controller :
View :
@{
bool hideYoutubeVideos = ViewBag.hideYoutubeVideos ?? false;
}
Usage :
@if (!hideYoutubeVideos)
{
<span>hello youtube</span>
}
Also, be sure, that NIKITA_DEBUG variable exist in build tab of your project :
@if (HttpContext.Current.IsDebuggingEnabled)
{
// Debug mode enabled. Your code here. Texts enclosed with <text> tag
}
For me, the code below has worked very well. When the application is Debugging my buttons appear, when is Release, don't.
@if (this.Context.IsDebuggingEnabled)
{
<button type="button" class="btn btn-warning">Fill file</button>
<button type="button" class="btn btn-info">Export file</button>
}
In your model:
bool isRelease = false;
<% #if (RELEASE) %>
isRelease = true;
<% #endif %>
In your view:
<% if (Model.isRelease) { %>
<div class="releaseBanner">Banner text here</div>
<% } else { %>
<div class="debugBanner">Banner text here</div>
<% } %>