2010-09-06 82 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