Hybrid Templates using Preprocessor Directives
    
      Razor is mostly HTML + C#. 
      But we need often need .net features, which can vary a bit from .net Framework and DNN, or .net core and Oqtane.
      This is where CmsContext.Platform.Name is used. 
      Read more about this in the docs.
    
    
      When working with normal .cs files #if, #if !, #else and #endif can be used due 
      to them being compiled by 2sxc. 
    
    
      Using CmsContext.Platform.Name you can switch between files using CmsContext.Platform.Name. Here's a simple example.
  
 
  
 
NON .net Core code = Dnn ☢
  On Dnn you'll see this because CmsContext.Platform.Name was Dnn. 
  Here you can also place code which only compiles in DNN, like: 
  PortalId = 0
 
  
    
  
    
@Html.Partial("_410-compiler-preprocessor.PartInfo." + CmsContext.Platform.Name + ".cshtml")
   
 
 
  
    
  
    @inherits Custom.Hybrid.Razor14
<!-- unimportant stuff, hidden -->
Hybrid Templates using Preprocessor... <!-- unimportant stuff, hidden -->
<hr>
@Html.Partial("_410-compiler-preprocessor.PartInfo." + CmsContext.Platform.Name + ".cshtml")
<!-- unimportant stuff, hidden -->