2010-10-02 5 views
1

J'ai un site asp.net construit en utilisant visual studio 2010 en C#. Le site est essentiellement deux sections: http://www.wsgelectronics.com pour référence.asp.net plusieurs pages maîtres non imbriquées dans un projet

La page par défaut est la page site.master avec default.aspx. Je veux diviser en deux pages maîtres supplémentaires, une pour chaque section, audio de voiture et des sections d'ordinateur si vous regardez le site, chacun avec sa propre mise en page, barre de navigation, contenu, etc

Comment pourrais-je les relier travailler? Puis-je avoir trois pages * .master sur un projet? Je n'ai pas choisi de cause imbriquée car il s'agirait de mises en page complètement différentes, mais je ne trouve aucun tutoriel sur la liaison de différentes pages maîtres sur un même site. Est-ce faisable?

+0

Je ne sais pas si je comprends, vous avez besoin de pages différentes avec différentes pages maaster? C'est tout? –

+0

un site.master a deux liens, chacun qui va à leur propre page .master, et puis chaque section de ce site s'écoule de cette page principale ses deux sites Web combinés en un seul –

+0

le site.master principal est essentiellement la page d'intro à mon site avec une page de contenu default.aspx ... puis il y a deux pages maîtres pour chaque section du site –

Répondre

4

Oui, vous pouvez avoir autant de pages maîtres que vous le souhaitez sur un site Web donné. Lorsque vous créez un formulaire Web (une page .aspx normale) sur votre site, il y a une case à cocher pour "Sélectionner la page maître", donc assurez-vous que c'est coché. Ensuite, lorsque vous sélectionnez la page maître souhaitée, Studio stocke le balisage nécessaire pour que votre page utilise cette page maître.

Par exemple, voici un bout de formulaire Web qui a un maître dans le même répertoire, appelé MasterPage.master. Les parties pertinentes sont les suivantes:

  1. Dans la directive Page, la propriété MasterPageFile indique le chemin d'accès relatif de l'application à la page maître. Les pages maître peuvent avoir plusieurs contrôles serveur de type ContentPlaceHolder. Cela vous permet de contrôler l'emplacement du balisage dans vos pages. La page principale que j'ai utilisée dans cet exemple en a deux, l'une s'appelle head et l'autre s'appelle ContentPlaceHolder1. Encore une fois, ces contrôles sont définis dans ma page maître.

balisage Exemple:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
</asp:Content> 

Pour plus d'informations, voir Master Page Tutorials sur asp.net.

+0

et j'ai créé la page Site.master et sa page default.aspx fonctionne très bien, puis en studio visuel i créé deux autres pages maîtres avec des noms différents, dans ce projet en cliquant sur le projet/ajouter nouveau/master page/etc et les reliant aux liens corrects, cependant, quand je clique sur le lien qui devrait me conduire à la bonne page maître je reçois une erreur d'analyseur –

+0

qu'il ne peut pas trouver la page –

+0

je suis sûr qu'il a quelque chose à voir avec le nom de la page, l'espace de nom, codebehind –

1

Oui, vous pouvez utiliser plusieurs pages maîtres mais à la fois une page maître doit être référencée. Vous pouvez hériter de plusieurs pages maîtres au niveau du code en spécifiant la page maître dans l'événement pre_Init du cycle de vie de la page. Tout ce que vous devez faire est de définir une propriété sur la page de contenu qui définira la page maître souhaitée dans l'événement pre_Init peut être une variable de session rendant dynamique.

Questions connexes