Domanda

Sto cercando l'equivalente di un

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

Per le viste in MVC3 / Razor.Qual è il metodo idiomatico per implementare questo tipo di configurazione?

È stato utile?

Soluzione

È troppo complicato IMO.Le visualizzazioni dovrebbero essere stupide e concentrate sul rendering dell'HTML, non sul prendere decisioni basate sulla build.

Imposta le proprietà nel tuo modello di visualizzazione se il debug è configurato e visualizzale nella vista.

Se le proprietà sono nulle (ad esempio non di debug), non verrà visualizzato nulla.

Altri suggerimenti

Puoi utilizzare HttpContext.Current.IsDebuggingEnabled , controlla il valore di debug nel file web.config.

Ad esempio:

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

L'altra opzione è usare scrivi la tua estensione HttpHelper

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

Quindi nel tuo codice Razor puoi usarlo come:

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

Non pensare di poterlo fare in Razor poiché non si compila allo stesso modo del codice C #.

Quindi direi che il modo migliore per farlo sarebbe farlo nel controller e aggiungerlo a un valore nel tuo modello.

Modifica: ecco qualche informazione in più.La persona qui sta suggerendo un metodo di estensione che carica il codice appropriato, indipendentemente dal fatto che sia in debug o meno: la vista asp.mvc inserisce #IF DEBUG nella configurazione della versione Dato che non ci hai detto cosa vorresti fare, non posso darti alcuna risposta in "codice".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top