8
votes

Comment utiliser une méthode dans une page principale à partir d'une page de contenu

J'écris une application ASP.NET 4 avec C #. J'ai une page maître, à l'intérieur de laquelle j'ai la méthode suivante: xxx

puis-je appeler cette méthode à partir d'une page de contenu?
Pour le moment, j'utilise dans la page de contenu de ce code: xxx

et je reçois cette erreur:

'system.web.ui.masterpage' ne contient pas de définition pour 'displaymessage' et aucune méthode d'extension 'displaymessage' Accepter un premier argument de type 'system.web.ui.masterpage' pourrait être trouvé (êtes-vous manquant une directive ou une référence d'assemblage?)

Toute aide sera appréciée.


1 commentaires

Quelle version vs utilisez-vous?


3 Réponses :


6
votes

Vous devez lancer le code> code> au type Masterpage xxx pré>

Vous pouvez également ajouter un Directive MasterType en haut de votre page de contenu pour obtenir la même chose: P>

Master.DisplayMessage('Item has been inserted.');


8 commentaires

Salut où je peux insérer <% @ mastertype virtualpath = "~ / Masterpage.master"%> dans la page de contenu ou la page principale? Merci


C'est placé dans la page de contenu.


@Glbbok - Ajoutez-le à votre page de contenu. Ensuite, vous pouvez simplement utiliser maître.displayMessage ('...');


J'essaie Graham, mais j'obtiens une erreur à nouveau 1 erreur 1 Le type ou le nom de l'espace de noms 'Masterpages' n'existe pas dans l'espace de noms 'webproject.web.cms.admincms' (manquez-vous une référence d'assemblage?) ... qu'est-ce que je fais tort???


J'utilise ce code: <% @ MasterType VirtualPath = "~ / cms / admincms / Masterpages / admincms.master"%>


@Blbbok - est le chemin d'accès à admincms.master correct? Est-ce que cela fonctionne sans la directive MasterType et le casting dans votre code au bon type?


@Blbbok - Est-ce un projet de site Web ou d'application Web?


Ok je l'ai fait, je dois réparer le sentier vraiment merci pour des coups de vue



7
votes

Vous pouvez utiliser CASTING pour obtenir votre type de page maître, car d'autres ont montré ou vous pouvez ajouter le MASTERTYPE Directive sur votre page MARKUP (en haut, où la standard <% @ pages%> la directive est): Xxx

puis dans votre code de page, vous pouvez avoir exactement ce que vous avez dans votre exemple: xxx

MasterType directive est disponible à partir de .NET 2 vers le haut.


1 commentaires

"La directive MasterType est disponible chez .NET 2 vers le haut." Comme sont des pages maîtres. :-)



0
votes

J'ai fait / essayer ceci:

My Control (MenuesQuerdo.ascx) P>

RepeaterListaMenuEsquerdoCtr.DataSource = this.Master.ClassMercadorias.Take(20);
RepeaterListaMenuEsquerdoCtr.DataBind();


0 commentaires