Question

Je cherche l'équivalent d'un

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

Pour les vues dans MVC3 / Razor. Quelle est la méthode idiomatique pour implémenter ce type de configuration?

Était-ce utile?

La solution

C'est trop désordonné. Les vues doivent être stupides et axées sur le rendu du HTML, sans prendre de décisions basées sur la construction.

Définissez les propriétés dans votre modèle de vue si le débogage est configuré et les rendre dans la vue.

Si les propriétés sont nuls (par exemple non-debug), rien ne sera rendu.

Autres conseils

Vous pouvez utiliser Httpcontext.current.isdebuggingEnabled, il vérifie la valeur de débogage dans le fichier web.config.

Par exemple:

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

L'autre option consiste à utiliser votre propre extension httphelper

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

Ensuite, dans votre code de rasoir, vous pouvez l'utiliser comme:

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

Ne pensez pas que vous pouvez le faire dans Razor car il ne compile pas de la même manière que le code C #.

Je dirais donc que la meilleure façon de le faire serait de le faire dans votre contrôleur et de l'ajouter à une valeur dans votre modèle.

Edit: Voici quelques informations supplémentaires. La personne ici suggère une méthode d'extension qui charge le code approprié, que ce soit dans le débogage ou non: ASP.MVC View Enteres #if Debug dans la configuration de la versionComme vous ne nous avez pas dit ce que vous aimeriez faire, je ne peux pas vous donner de réponses «code».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top