Puis-je faire quelque chose comme ça dans le balisage d'une page asp.net, basé sur le paramètre "Définir la constante DEBUG"?
#IF (DEBUG) THEN
<asp:TextBox ID="TextBox1" runat="server">You're in debug mode</asp:TextBox>
#END IF
Puis-je faire quelque chose comme ça dans le balisage d'une page asp.net, basé sur le paramètre "Définir la constante DEBUG"?
#IF (DEBUG) THEN
<asp:TextBox ID="TextBox1" runat="server">You're in debug mode</asp:TextBox>
#END IF
<form runat="server">
<% #if DEBUG %>
<asp:TextBox ID="TextBox1" runat="server">You're in debug mode</asp:TextBox>
<% #else %>
<asp:TextBox ID="TextBox2" runat="server">Mmm... No, I think you're not in debug mode</asp:TextBox>
<% #endif %>
</form>
Notez que vous ne pouvez pas attribuer le même ID à ces zones de texte.
Notez également que DEBUG est vrai lorsqu'il est défini ainsi dans web.config:
<compilation debug="true">
La fin que je peux obtenir est:
<asp:Literal id="isDebug" runat="server" />
<script runat="server">
void Page_Load()
{
#if DEBUG
isDebug.Text = "You're in debug mode";
#endif
}
</script>
Cela vous poserait des problèmes si vous vouliez avoir autre chose dans votre événement▶Load (); le code littéral ci-dessus ne fonctionne que si la page / le contrôle n'a pas de code derrière.
Si je devais le faire, j'encapsulerais le code ci-dessus dans un contrôle utilisateur et j'inclurais ce contrôle dans les pages d'intérêt.
Mon contrôle utilisateur de test ressemble à ceci:
<%@ Control Language="C#" AutoEventWireup="true" %>
<asp:Literal id="isDebug" runat="server" />
<script runat="server">
void Page_Load()
{
#if DEBUG
isDebug.Text = "You're in debug mode";
#endif
}
</script>
Si vous essayez d'étape à l'aide de javascript, ou préférez minifier javascript lorsqu'il n'est pas de débogage, je préfère cette approche:
<% if (Debugger.IsAttached) { %>
<script src="jquery.js"></script>
<% } else { %>
<script src="jquery.min.js"></script>
<% } %>
Je peux facilement le code pas à pas quand je suis débogage, sinon je veux les scripts pour être minimisé. Assurez-vous d'inclure d'importation suivantes:
<%@ Import Namespace="System.Diagnostics" %>
En outre, il est agréable à utiliser sur le Web Essentials extension de visual studio pour bundle/minifier vos fichiers javascript ainsi qu'il existe une seule requête faite au serveur pour vos scripts.
Que diriez-vous d'utiliser un littéral, puis d'utiliser #if DEBUG dans votre code-behind pour injecter du HTML pour votre zone de texte dans le littéral? Il existe également des blocs de code directs dans ASP.NET mais je ne sais pas s'ils traitent des instructions #if; ceux-ci semblent être réservés au compilateur C #.
Ceci est une erreur:
<compilation debug="true">
@ algiecas : Définir le débogage sur true ou flase dans le web.config ne fait aucune différence. Cela dépend uniquement si le projet a été compilé comme "Debug" ou non:
Mode de débogage activé - notez que le code de la clause else est effacé lorsque le mode de débogage est sélectionné:
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.