Meilleur auteur de réponses
Lien entre une page d'application et une page maître

Question
-
Bonjour à toutes et à tous,
Ce que j'essaye de réaliser est assez simple sur le papier. Je cherche à déployer une solution contenant une application page et une master page. Le but est que l'application page (seulement elle) hérite de la master page déployée.
Pour ce faire, j'ai créé mon projet, ajouté un module dans lequel j'ai positionné ma master page et modifié quelques paramètres dans le Element.xml (en voici une copie) :
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Module Name="MasterPageGallery" Path="MasterPageGallery" Url="_catalogs/masterpage"> <File Path="toto.master" Url="toto.master" Type="GhostableInLibrary"> <Property Name="UIVersion" Value="4" /> </File> </Module> </Elements>
Cette masterpage est déployée correctement quand la feature est activée et je la vois physiquement présente que j'ouvre SPDesigner ou la Master Page Gallery de ma Site Collection.
Dans le même temps, j'ai créé une application page dans laquelle je n'ai rien modifié par rapport à ce que Visual Studio génère en dehors de la ligne suivante :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="picsou.Layouts.picsou.Home" MasterPageFile="_catalogs/masterpage/toto.master" %>
(dans la version originale, il y avait un attribut DynamicMasterPageFile="~masterurl/default.master")
J'ai tout essayé : chemins absolus, chemins relatifs, chemins détournés, mi-chemin : rien n'y fait. Impossible de faire en sorte que mon application page se "connecte" à la master page déployée.
Si quelqu'un a une piste ou une explication, je suis preneur !
Cordialement,
--
AP- Type modifié Dan BajenaruMicrosoft employee mercredi 22 août 2012 16:31 Attente de Feedback
- Type modifié Dan BajenaruMicrosoft employee mercredi 22 août 2012 16:32 Attente de Feedback
- Type modifié Dan BajenaruMicrosoft employee mercredi 12 septembre 2012 13:08
Réponses
-
Bonjour,
Faites le test en déployant la master Pages dans le répertoire _layouts :
...\14\TEMPLATE\LAYOUTS\v4_Custom.master
Et dans l'appplication page:
<%@ Page Language="C#" [...] MasterPageFile="~/_layouts/v4_Custom.master"%>
J'ai fait le test hier soir sur ma VM, et ca fonctionne.
NicoBzh
- Marqué comme réponse Ange-Pierre Desmoulins mercredi 12 septembre 2012 17:10
Toutes les réponses
-
Bonjour,
Par défaut, les pages applications (stockées dans le répertoire _layouts) doivent faire références aux pages maîtres du site. Voir dans les paramètres généraux de l'administration centrale.
Dans votre cas il faut désactiver ce paramètre. Mais cela implique l'ensemble de la webApp..
NicoBzh
- Modifié Nicolas Castel vendredi 17 août 2012 14:01
-
Bonjour,
Merci de nous tenir au courant.
Cordialement,
Dan
Dan BAJENARU, MSFT Votez! Appel à la contribution
Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte. -
-
-
Bonjour,
Faites le test en déployant la master Pages dans le répertoire _layouts :
...\14\TEMPLATE\LAYOUTS\v4_Custom.master
Et dans l'appplication page:
<%@ Page Language="C#" [...] MasterPageFile="~/_layouts/v4_Custom.master"%>
J'ai fait le test hier soir sur ma VM, et ca fonctionne.
NicoBzh
- Marqué comme réponse Ange-Pierre Desmoulins mercredi 12 septembre 2012 17:10
-
Tout d'abord merci.
En effectuant un copier/coller de la master page et en la positionnant dans le répertoire ...\14\TEMPLATE\LAYOUTS\ puis en modifiant le chemin d'accès dans l'application page, cela fonctionne. Néanmoins, depuis Visual Studio, je n'arrive pas à déployer directement la Master Page dans ce répertoire. Je pense avoir essayé toutes les combinaisons possibles de chemins. Avez-vous déployé cette master page depuis Visual Studio en utilisant un module ou juste copié celle-ci dans le répertoire ?
D'autre part, je reste quand même curieux de savoir pourquoi il est impossible d'accéder à la master page depuis l'application page si cette master est dans le répertoire _catalogs/masterpage. Le message d'erreur que j'obtiens :
Parser Error Message : The reference file "/_catalogs/masterpage/toto.master" is not allowed on this page
ne me parle pas. Tout ce que j'en déduis est que l'application page voit la master page mais qu'elle ne peut y accéder pour d'obscures raisons.
--
AP -
Bonjour,
Pour mon test, je suis en effet passer par un copier/coller dans le répertoire physique. Pour le déploiement via VS 2010, il faut passer par le répertoire mappé : http://msdn.microsoft.com/fr-fr/library/vstudio/ee231521.aspx
Mais vous avez dû l'utiliser pour déployer votre page applicative.
Pour la raison du problème d'accès de la masterPage stockée dans le _catalog, je n'ai pas non plus de réponse.
NicoBzh
-
-
Bonjour,
J’ai changé le type de ce thread en question.
Monsieur Ange-Pierre, le bouton ''marquer comme réponse'' est toujours disponible.
Merci et je vous souhaite une bonne journée à tous.
Cordialement,
Dan
Dan BAJENARU, MSFT Votez! Appel à la contribution
Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.