2011-06-13 128 views
16

我在我的asp.net主頁面有一個公共方法。是否可以從內容頁面調用此內容,如果是這樣,步驟/語法是什麼?主頁面調用方法

回答

36

Page內,你可以在Master頁面轉換爲特定類型(即暴露所需的功能你自己Master型),使用as到另一邊的類型不匹配步驟的任何異常:

var master = Master as MyMasterPage; 
if (master != null) 
{ 
    master.Method(); 
} 

在上面的代碼,如果是MasterMyMasterPage不然後masternull並且沒有方法調用將嘗試;否則會按預期調用。

+0

+1對於無效的演員處理。 – 2011-06-13 15:58:37

+2

首先查看Uwe Keim的答案;我發現使用非常簡單。 – Tim 2013-12-19 17:58:39

5
MyMasterPageType master = (MyMasterPageType)this.Master; 
master.MasterPageMethod(); 
+0

你可以將它添加爲頁面頂部的靜態成員嗎​​? – suggy1982 2011-06-14 20:16:05

+0

不是靜態成員,因爲母版頁特定於當前處理請求的頁面。你可以爲母版頁創建一個實例屬性:'private MyMasterPageType master {get {return(MyMasterPageType)this.Master; }}' – 2011-06-14 20:20:42

13

使用MasterType directive例如像:

<%@ MasterType VirtualPath="~/masters/SourcePage.master" %> 

然後你可以使用的方法是這樣的:

Master.Method();