Si les déclarations de fichiers aspx

J'ai un code qui, pour l'essentiel ressemble à ceci:

<div>
    <% if(Something) { %>
        <div id="someUniqueMarkup">
            This markup should not be output if Something==true.

            <units:MyUserControl runat="server"/>
        </div>
    <% }
    else { %>
        <units:MyUserControl runat="server" />
    <% } %>
</div>

Selon Something, l'un d'eux est caché, et c'est très bien. Mais si j'ai mis des points de rupture dans le contrôle de l'utilisateur, je remarque qu'il est chargé à deux reprises (une fois pour chacun des contrôles ci-dessus) et tout c'est la logique est en train d'être exécuté deux fois. Je pourrais bien sûr de le contrôler avec des espaces réservés ou multivues, mais la même chose semble s'appliquent - OnLoad/Page_Load etc est exécuté une fois pour chaque contrôle qui est en fait sur la page.

EDIT:
La raison pour laquelle im montrer/cacher c'est parce que j'ai besoin d'inclure certains balisage autour de la contrôler si Something == true. J'ai pu envelopper "uniques balisage" lui-même en si-sinon avant et après le contrôle, mais qui semble juste sale pour quelque chose qui devrait vraiment être aussi simple que je l'ai imaginé ci-dessus. Le contrôle de l'utilisateur lui-même doit être exactement le même dans les deux scénarios, désolé pour la confusion de la propriété qu'il a eu.

Est-ce juste moi, ou est-ce vraiment une interface peu intuitive? Et est-il réellement possible de ne pas charger/exécuter un contrôle de l'utilisateur à tout, tant que c'est sur la page?

  • C'est juste vous, je pense.
  • pourquoi ne pas utiliser le code-behind? votre contrôle est côté serveur, donc quand les ajoutant l'ID de paramètre, vous pouvez définir vos paramètres. et de l'utiliser qu'une seule fois, comme mentionné @Kenneth dans sa réponse.
  • Oui, c'est vraiment pas intuitif. Mais là encore, donc, est l'ensemble des Formulaires web!
  • Eh bien, c'est un gros mensonge.
  • dans·tu·i·tive /inˈt(y)ooitiv/ Adjectif fondées sur ce que l'on ressent à être vrai, même sans raisonnement conscient; instinctive. (principalement des logiciels informatiques) Facile à utiliser et à comprendre. Je ne suis pas un "menteur" - ce n'est pas intuitive. Qui langage de programmation exécute quelque chose dans un if, même si la condition est fausse? Réponse: à peu près aucun, en dehors de WebForms, dans cet exemple.
  • Ce code à l'intérieur d'un bloc est exécuté, même lorsque le bloc "n'est pas exécutée" est loin d'être intuitif qu'il arrive, si vous me demandez.
  • C'est une vague de généralisation pour l'ensemble de Formulaires web.
  • Je l'avais fait en désaccord. Ou, c'est un balayage de la généralisation. Mais c'est vrai. Comment intuitif est l'ensemble du cycle de vie de page? Ajouter dans la liaison de données et la liaison de données des événements. Et ceux sale, généré designer.cs-fichiers. Quel est intuitive? Personne ne peut comprendre ces choses sans connaissances spécifiques de la façon dont les Webforms de travail, alors que la plupart des autres cadres peuvent généralement être compris par la connaissance de la langue et les principaux modèles utilisés.

InformationsquelleAutor Arve Systad | 2013-05-29