C# ASP.net通过内容页访问母版页变量

C# ASP.net通过内容页访问母版页变量,c#,asp.net,winforms,master-pages,C#,Asp.net,Winforms,Master Pages,我有一个母版页: <%@ Master Language="C#" AutoEventWireup="true" Codefile="AdminMaster.master.cs" Inherits="AlphaPackSite.MasterPages.AdminMaster" %> 在我的内容页中,我想设置此变量: public partial class AdminMaster : System.Web.UI.MasterPage { protected bool bln

我有一个母版页:

<%@ 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;
因此,在我的母版页中,我可以获得以下代码:

    $(function() {
    <%if(blnShowDialogue == true){%>
        $("#dialog").dialog();
    <% } %>
    }
$(函数(){
$(“#dialog”).dialog();
}
这有意义吗?当我尝试Master.blnShowDialogue或blnShowDialogue=等组合时,似乎没有任何效果

“blnShowDialogue”这个名字没有 存在于当前上下文中


您需要将母版页转换为实际类型

((AdminMaster)Master).blnShowDialogue = "Foo";
否则,Master将只是引用基类Master——您试图访问实际类中派生自Master类的属性

您得到的错误是因为类System.Web.UI.MasterPage中不存在名为blnShowDialogue的属性-这是有意义的,因为您没有告诉它您试图引用的特定MasterPage实例


希望有帮助。

使用@MasterType指令,如下所述:


你说得对,甚至没有注意到他的声明中遗漏了这一点。+1.谢谢你的回答,但我还是有点不知所措!我应该把这个指令放在哪里?嗨,汤姆,你必须把它放在你的@page指令下,放在你的.aspx页面中。谢谢,我在我的内容页面上这样做,但是((AdminMaster)Master).blnShowDialogue=true;仍然无法工作,键入或命名空间无效found@Tom-摆脱对(AdminMaster)的强制转换。只需使用“Master.blnShowDialogue”。我假设“AdminMaster”类与您试图从中访问它的页面位于同一命名空间中?如果不是,您将需要使用“VirtualPath”属性(与TypeName相反)。谢谢,但它给出了错误,类型或命名空间名称“AdminMaster”找不到(您是否缺少using指令或程序集引用?@Tom-@mamoo的回答是正确的(没有仔细查看您的母版页指令),让他试试。