2013-06-11 3 views
1

Je conçois un sitemaster dans asp.net qui a un menu pour l'utilisateur, mais je veux quand invité entrer dans une page spéciale le menu ne s'affiche pas.Comment changer de sitemaster pour un invité sur asp.net?

+0

Utilisez-vous MVC/Razor? –

+0

essayer de contenir cette barre de menu à l'intérieur de 'div' ou' panel' et appliquer une condition basée sur guest, si invité entrez ce menu ou ce panneau visible proprty à false else true. – Rahul

Répondre

1

Vous pouvez définir l'heure d'exécution de la page maîtresse en fonction de la condition spécifique. Il y a un événement Page_PreInit qui sera exécuté juste avant le le rendu de la page. Nous devons faire du code dans cet événement comme ci-dessous

protected void Page_PreInit(object sender, EventArgs e) 
{ 
if (Membership.GetUser() == null) //check the user weather user is logged in or not 
    this.Page.MasterPageFile = "~/General.master";//master page with menu 
else 
    this.Page.MasterPageFile = "~/myMaster.master";//master page with out menu 
} 

nous pouvons modifier le contenu de la page principale de la page héritée trop comme ci-dessous

Master.FindControl("menu").Visible = true; 
+0

Ok, mais est-ce que je peux ajouter une page principale de remorquage dans ma page? (en haut de la page) <% @ Page Title = "" Language = "C#" MasterPageFile = "~/Site.master" AutoEventWireup = "true" ValidateRequest = "false" CodeFichier = "a.aspx.cs" Inherits = "main_a"%> – NASRIN

+0

Non, vous ne pouvez pas ajouter deux maîtres à partir du concepteur (page .aspx). Vous pouvez y ajouter une page maître par défaut et la modifier à partir de la page .cs dans l'événement Page_PreInit. –

Questions connexes