2010-09-06 24 views
12

tengo una página maestra:ASP.net acceder a una variable página maestra a través de la página de contenido

<%@ Master Language="C#" AutoEventWireup="true" Codefile="AdminMaster.master.cs" Inherits="AlphaPackSite.MasterPages.AdminMaster" %> 

Entonces tengo una variable pública:

public partial class AdminMaster : System.Web.UI.MasterPage 
{ 
    protected bool blnShowDialogue = false; 

En mi página de contenido me gustaría para establecer esta variable:

blnShowDialogue = true; 

Para que en mi página maestra pueda tener la c oda:

$(function() { 
    <%if(blnShowDialogue == true){%> 
     $("#dialog").dialog(); 
    <% } %> 
    } 

¿Tiene esto sentido? Cuando pruebo combinaciones de Master.blnShowDialogue, o blnShowDialogue =, etc etc. nada parece funcionar.

El nombre 'blnShowDialogue' no existen en el actual contexto

Respuesta

12

Uso @MasterType, como se explica aquí:

http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

+0

Tiene razón, ni siquiera notó que faltaba en su declaración. +1. – RPM1984

+0

Gracias por la respuesta, pero todavía estoy un poco perdido con esto! ¿Dónde pongo esa directiva? –

+1

Hola Tom, tienes que ponerlo bajo tu directiva @page, en tus páginas .aspx. – mamoo

5

, es necesario especificar la página principal con el tipo real.

((AdminMaster)Master).blnShowDialogue = "Foo"; 

De lo contrario Maestro simplemente voy a referir a la clase base Maestro - que está tratando de acceder a una propiedad en su clase real que se deriva de la clase Maestro.

El error que está recibiendo es debido a una propiedad llamada blnShowDialogue no existe en la clase System.Web.UI.MasterPage - lo cual tiene sentido, ya que no está diciendo que la instancia MasterPage específico sea tratando de referirse a.

Espero que ayude.

Directiva
+1

Gracias, pero da el error, \t El tipo o espacio de nombres 'AdminMaster' no se puede conocer (¿falta una directiva using o ¿una referencia de ensamblado?) –

+0

@Tom - la respuesta de @momoo es correcta (no miró la directiva de su página maestra lo suficiente), pruébalo. – RPM1984

Cuestiones relacionadas