ASP.net通过内容页面访问主页变量

时间:2010-09-06 12:12:13

标签: 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 blnShowDialogue = false;

在我的内容页面中,我想设置此变量:

blnShowDialogue = true;

因此,在我的母版页中,我可以获得代码:

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

这有意义吗?当我尝试Master.blnShowDialogue或blnShowDialogue =等组合时,似乎没什么用。

  

名称'blnShowDialogue'没有   存在于当前背景中

2 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:6)

您需要将Master页面转换为实际类型。

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

否则 Master 只会引用基类 Master - 您正在尝试访问实际类中派生的属性来自 Master 类。

你得到的错误是因为类 System.Web.UI.MasterPage 中不存在名为 blnShowDialogue 的属性 - 这是有道理的,因为你是不告诉它你试图引用哪个特定的MasterPage实例。

希望有所帮助。