J'ai créé une classe appelée BasePage qui hérite de System.Web.UI.Page. Sur cette page j'ai déclaré une propriété appelée UserSession à laquelle je souhaite accéder depuis n'importe quelle page/pagePage.Etendre l'outil d'implémentation System.Web.UI.Page personnalisé pour inclure une propriété personnalisée accessible par page et page maître
public class BasePage : System.Web.UI.Page
{
string UserSession { get; set; }
public BasePage()
{
base.PreInit += new EventHandler(BasePage_PreInit);
}
private void BasePage_PreInit(object sender, EventArgs e)
{
UserSession = "12345";
}
}
la page Mon Default.aspx.cs hérite de la classe de BasePage et me permet d'accéder à la propriété UserSession comme prévu.
public partial class Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(UserSession);
}
}
Cependant, même si Default.aspx a MasterPage.Master correctement affecté, lorsque je tente et accéder à la propriété UserSession de MasterPage.Master.cs il ne peut pas trouver et ne construira pas.
Alors qu'est-ce que j'essaie de faire en faisant cela? Je veux exposer un objet UserSession à chaque page de mon application. Assez simple tu aurais pensé? Nan.
Est-il possible d'exposer un nombre illimité de propriétés sans avoir à déclarer chacun d'eux individuellement dans la BaseMasterPage? –
Vous pourriez exposer le '(page comme BasePage)' lui-même, et l'appeler par 'BasePage.UserSession' etc. bien que je m'oppose à ce que j'expose un peu beaucoup. –