2010-09-06 47 views
12

我有一个母版页:ASP.net通过内容页访问母版页变量

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

然后,我有一个公用变量:

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

在我内容页我想设置此变量:

blnShowDialogue = true; 

因此,在我的母版页我可以有c ode:

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

这是否有意义?当我尝试组合Master.blnShowDialogue或blnShowDialogue =等等时,似乎没有任何工作。

“blnShowDialogue”名称不 在目前情况下

回答

12

使用@MasterType指令,如这里说明:

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

+0

你是对的,甚至没有注意到他的声明中遗漏了。 +1。 – RPM1984 2010-09-06 12:29:58

+0

感谢您的回答,但我仍然有点失落!我在哪里放置该指令? – 2010-09-06 12:52:14

+1

嗨汤姆,你必须把它放在你的@page指令下,放在你的.aspx页面中。 – mamoo 2010-09-06 12:59:52

5

你需要的法师页面转换为实际的类型存在。

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

否则将简单地指基类 - 你想在你的实际类类派生访问属性。

你所得到的错误是因为在类System.Web.UI.MasterPage不存在一个叫blnShowDialogue财产 - 这是有道理的,因为你不告诉它你是哪个特定的母版实例试图参考。

希望有所帮助。

+1

谢谢,但它给人的错误,\t类型或命名空间名称AdminMaster'找不到(是否缺少using指令或一个程序集参考?) – 2010-09-06 12:32:10

+0

@Tom - @ mamoo的回答是正确的(没有仔细看你的母版页指令),让他的方式去。 – RPM1984 2010-09-06 12:32:56