Pregunta

Estoy buscando el equivalente a

#if DEBUG
   //view elements to show just for debug builds
#if

para vistas en MVC3 / Razor.¿Cuál es el método idiomático para implementar este tipo de configuración?

¿Fue útil?

Solución

Eso es demasiado complicado en mi opinión.Las vistas deben ser tontas y estar enfocadas en renderizar HTML, no en tomar decisiones basadas en compilaciones.

Establezca propiedades en su modelo de vista si la depuración está configurada y renderícelas en la Vista.

Si las propiedades son nulas (por ejemplo, no depuradas), no se procesará nada.

Otros consejos

Puede utilizar HttpContext.Current.IsDebuggingEnabled , verifica el valor de depuración en el archivo web.config.

Por ejemplo:

@if(HttpContext.Current.IsDebuggingEnabled) {
    //view elements to show just for debug builds
}

La otra opción es escribir su propia extensión HttpHelper

public static class HtmlHelperExtensions
{
    public static bool IsDebug(this HtmlHelper helper)
    {
        #if DEBUG
          return true;
        #else
          return false;
        #endif
    } 
}

Luego, en su código de Razor, puede usarlo como:

@if (Html.IsDebug())
{ 
    //view elements to show just for debug builds
}

No crea que puede hacer eso en Razor, ya que no se compila de la misma manera que lo hace el código C #.

Entonces, diría que la mejor manera de hacerlo sería hacerlo en su controlador y agregarlo a un valor en su modelo.

Editar: aquí hay más información.La persona aquí sugiere un método de extensión que carga el código apropiado, ya sea en depuración o no: asp.mvc view ingresa #IF DEBUG en la configuración de la versión Como no nos ha dicho lo que le gustaría hacer, no puedo darle ninguna respuesta en "código".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top