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

Tom*_*len 13 c# asp.net master-pages winforms

我有一个母版页:

<%@ Master Language="C#" AutoEventWireup="true" Codefile="AdminMaster.master.cs" Inherits="AlphaPackSite.MasterPages.AdminMaster" %>
Run Code Online (Sandbox Code Playgroud)

然后我有一个公共变量:

public partial class AdminMaster : System.Web.UI.MasterPage
{
    protected bool blnShowDialogue = false;
Run Code Online (Sandbox Code Playgroud)

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

blnShowDialogue = true;
Run Code Online (Sandbox Code Playgroud)

所以在我的母版页中我可以得到代码:

    $(function() {
    <%if(blnShowDialogue == true){%>
        $("#dialog").dialog();
    <% } %>
    }
Run Code Online (Sandbox Code Playgroud)

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

当前上下文中不存在名称"blnShowDialogue"

RPM*_*984 6

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

((AdminMaster)Master).blnShowDialogue = "Foo";
Run Code Online (Sandbox Code Playgroud)

否则,Master将简单地引用基类Master - 您正在尝试访问实际类中的属性,该属性派生Master类.

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

希望有所帮助.