2009-07-27 7 views
1

Je travaille sur une application web qui a une seule page maître et plusieurs pages de contenu. Chaque page aura une petite barre latérale à la droite du contenu principal avec un bref contenu. Cependant, ce bref contenu est spécifique à la page sur laquelle vous vous trouvez. Je ne peux pas décider de mettre cela sur chaque page, ou dans la page maître dans un MultiView avec une certaine logique dans le code-behind pour spécifier quelle vue est affichée en fonction de la page sur laquelle vous vous trouvez.Contenu de la page ASP.NET - où cela figure-t-il?

Qui semble plus élégant? Je suis encore assez nouveau avec ASP.NET et j'essaie d'avoir une bonne idée de la bonne architecture, etc.

Répondre

4

Vous pouvez créer plusieurs espaces réservés de contenu dans une seule page maître. Donc dans votre cas, j'en créerais deux. Un pour le contenu de l'article et un pour la barre latérale comme:

<!-- some html--> 
<asp:contentplaceholder id="ArticleContents" runat="server"> 
</asp:contentplaceholder> 
<!-- some more html--> 
<asp:contentplaceholder id="ArticleSidebar" runat="server"> 
</asp:contentplaceholder> 
<!-- even more html--> 

vous pouvez alors le contenu de l'article et le contenu de la barre latérale à la fois dans la même page et le placer au bon endroit en utilisant quelque chose comme

<asp:Content ID="article" ContentPlaceHolderID="ArticleContents" Runat="Server"> 
Your article 
</asp:Content> 
<asp:Content ID="sidebar" ContentPlaceHolderID="ArticleSidebar" Runat="Server"> 
Your sidebar 
</asp:Content> 
+0

Puis-je demander ce que cela me fait d'avoir un autre ContentPlaceHolder en ajoutant le contenu directement dans le ContentPlaceHolder principal? –

+0

J'ai supposé que vous deviez le rendre à un emplacement complètement différent dans le HTML puis l'article. Si ce n'est pas le cas, vous ne gagnez rien et vous n'utilisez qu'un seul espace réservé. Alors la question n'a pas beaucoup de sens pour moi. Pourquoi la solution multiview si vous avez déjà une page par article et que la barre latérale a une relation 1: 1 avec l'article? – olle

+0

Mike - voir le commentaire sur mon post. – Charlie

0

Vous pouvez également mettre ce code supplémentaire dans un contrôle utilisateur (ou deux). La page de contenu inclurait alors le contrôle utilisateur approprié à cette page pour la barre latérale droite.

2

Si vous souhaitez que votre site soit plus maniable et que vous ayez besoin de plus de ces barres latérales personnalisées, je ne mettrais rien au-delà de la disposition standard dans la page maître.

Quel est le problème avec avoir un ContentPlaceHolder supplémentaire dans la barre latérale et juste ajouter le contenu dans les contrôles de contenu sur chaque page de contenu?

Votre approche me semble trop complexe.

+0

> Quel est le problème d'avoir un ContentPlaceHolder supplémentaire dans la barre latérale et d'ajouter simplement le contenu dans les contrôles de contenu de chaque page de contenu? ... Pouvez-vous élaborer un peu là-dessus? Comme je l'ai dit, je suis encore assez nouveau pour ASP.NET. –

+1

Essentiellement, vous pouvez avoir plusieurs ContentPlaceHolders sur une page maître. La raison d'avoir des multiples est de conserver la mise en page dans votre page maître. Il s'agit de la séparation de la mise en page et du contenu. La page maître est mise en page et les pages de contenu sont, bien, le contenu. – Charlie

Questions connexes