Je suis en train de faire ce qui suit dans une page ASPX:problème avec des instructions conditionnelles dans asp.net
<%@ Page Language="C#" EnableSessionSTate="true" ValidateRequest="False" Inherits="MyProject.CodeBehind.MYWF.SiteWF" MasterPageFile="~/_layouts/application.master" %>
<asp:Content ID="Content5" ContentPlaceHolderID="PlaceHolderPageDescription" runat="server">
<% if (!isOld) %>
<% { %>
<p>display this</p>
<% } %>
</asp:Content>
ISOLD est une variable bool publique à partir du fichier cs mentionné dans l'espace de noms.
Mais malheureusement, cela m'a donné une erreur inconnue.
Je pourrais faire quelque chose de similaire dans les JSPs, mais après avoir cherché pendant un moment, je ne suis pas sûr si ce qui précède est réalisable dans ASP.NET? (Ai-je manqué une déclaration de balise, ou dois-je écrire la balise entière lib moi-même?)
Merci.
EDIT: Je viens d'avoir une erreur inconnue. J'ai le sentiment que le code ci-dessus a la mauvaise syntaxe ou est totalement faux. J'ai essayé le code suivant, et il n'y avait pas d'erreur, mais la variable bool est toujours faux:
<% #if !isOld %>
<p> display this</p>
<% #endif %>
Et quelle erreur était-ce? Quelque chose comme: "Impossible de modifier la collection de contrôles"? Si oui, alors vous n'avez pas de chance. Vous devez arrêter le code qui modifie les contrôles (en ajoutant ou en supprimant un, quelque part dans votre codebehind) ou faire apparaître le 'display this' dans un 'PlaceHolder' et définir sa propriété' Visible' de manière appropriée (c'est ce que je voudrais faire). –
Re: votre édition, il vous manque un crochet: '<% if (! IsOld)%>' devrait être '<% if (! IsOld) {%>' (support de note). (Edit: en fait, peut-être pas, je n'ai jamais vu quelqu'un écrire la parenthèse dans une zone totalement différente de <% %> ', il semble étrange .. –