Je suis donc en train de câbler ma première MasterPage, et tout fonctionne bien, sauf pour une chose. C'est une application héritée, et j'ai une ancienne classe BasePage que toutes mes pages de contenu héritent. Il hérite de System.Web.UI.Page, mais n'a aucun contenu en lui-même (pas de fichier .aspx). Il exécute un tas de l'authentification de l'utilisateur/construction du menu d'octroi de rôle. Je veux conserver cette fonctionnalité mais l'utiliser pour définir des contrôles sur ma MasterPage afin de créer les menus. Je ne peux pas pour la vie de moi comprendre comment référencer les propriétés MasterPage sans une déclaration MasterType dans une page de contenu.Accès à une propriété d'une page maître à partir d'une classe ne faisant pas partie d'une page de contenu dans ASP.NET
classe Mon MasterPage est appelé NIMS_Master, et je donne les résultats suivants en elle (juste essayer de commencer):
public partial class NIMS_Master : System.Web.UI.MasterPage { public string MenuList { get; set; }
protected void Page_Load(object sender, EventArgs e)
{}
}
Avec une déclaration MasterType dans l'une de mes pages de contenu:
<%@ MasterType VirtualPath="~/NIMS_Master.master" %>
Je peux accéder à ma propriété en Login.aspx.cs comme suit:
this.Master.MenuList = "this is the menu list";
Mais dans mon BasePage.cs, je n'ai nulle part où mettre la déclaration MasterType. Toutes les recherches sur google indiquent que je dois lancer ma classe NIMS_Master en tant que Master, mais je ne peux pas la faire fonctionner pour me sauver la vie. J'ai essayé plusieurs choses différentes, mais ma classe NIMS_Master n'apparaît pas dans BasePage.
((this.Master)NIMS_Master).MenuList = "This is a menu list";
BasePage.cs est dans mon répertoire App_Code et mon fichier MasterPage est dans la racine de l'application, si cela importe.
Oups, vous avez raison.Cependant, ce que je reçois quand j'essaie que: (vous manque une directive à l'aide ou une référence d'assemblage) Erreur Le type ou le nom namespace « NIMS_Master » n'a pas pu être trouvé \t Je sais que je Il manque quelque chose de simple ici pour exposer ma classe NIMS_Master à ma classe BasePage. – fr0man