2011-04-28 62 views
4

我正在設置PageMethods以使用JavaScript訪問服務器端代碼。我在使用螢火蟲進行調試時收到錯誤「PageMethods is not defined」。服務器端代碼也沒有被觸發。PageMethods未定義

我已經將我的腳本管理器「EnablePageMethods」設置爲true。我的方法是公開的& static,並且它也設置了WebMethod屬性。我仍然收到上述錯誤。這可能是因爲腳本管理器中,有兩個孩子的母版頁,然後我的網頁被稱爲頂層母版頁是的:

主要母版頁(使用腳本管理器) - >主母版頁 - >二級母版頁 - >我的網頁 - >(具有的WebMethod)我的用戶控制

是否有可能THT層次結構是造成這個問題?

這是將WebMethod

[System.Web.Services.WebMethod] 
public static void AddNote(string t) 
{ 
    int propid = 1; 
    if (propid > 0) 
    { 
    //Call my method 
    } 
} 

這是我的javascript代碼:

function editNodes(t) { 
    alert('test1'); 
    alert(t); 
    PageMethods.AddNote(t,OnSuccess,OnFailure); 
    alert('method called'); 
} 
function OnSuccess() { 
    alert('Success'); 
    if (!navigator.appName == 'Microsoft Internet Explorer') { 
     window.location.href = window.location.href; 
    } 

} 
function OnFailure(error) { 
    alert('Error:' + error); 
}  

這就是我稱之爲:

<a href="#" class="btngeneral" onclick="javascript:editNodes(2);">Save</a> 
+0

能否請您粘貼在這裏,你使用壽訪問客戶端頁面方法的代碼? – 2011-04-28 12:08:11

+0

添加了代碼。請檢查 – ria 2011-04-28 12:17:14

+1

確保腳本管理器標籤位於頂層頁面,在您的情況下是主頁面。 – 2011-04-28 12:56:31

回答

4

據我瞭解,PageMethods在用戶控制不支持和線程似乎證實

http://forums.asp.net/p/977525/1242935.aspx

ASP.NET AJAX Page Methods from UserControl

但我認爲有可能是一個解決方法(不知道這是有效的在您的方案)。你可以在頁面的代碼中編寫一個OneLine PageMethod,在這個代碼之後,實習生會調用Controls Page方法。現在你可以從aspx調用你的頁面的方法,並且都可以開始。

或者你可以使用的部份替代 Alternate way to use page method inside user control asp.net

16

頁面方法沒有在任一母版頁或用戶控制工作。

如果移動方法上一級到你網頁它應該工作。

從來沒有真正能夠得到在這一個明確的答案。

我懷疑它的事實,aspx頁面從Page類繼承和ASCX控制從用戶控件類繼承做。至於爲什麼我不太確定。

個人而言,我會用一個通用的處理程序(ashx的)頁面,並呼籲通過JavaScript的。

+0

這真的只有一個有用的評論。 謝謝。 – BigMan 2014-03-21 08:50:05

11

組的EnablePageMethods =「真」

<ajaxToolkit:ToolkitScriptManager ID="scriptManager" 
           runat="server" 
           AsyncPostBackTimeout="99999999" 
           EnablePageMethods="true" /> 

我希望這會爲你工作

+0

這是我的解決方案!在我的情況下,它是一個Telerik RadScriptManager,我必須設置EnablePageMethods =「true」。 – DanM7 2013-04-23 18:12:53

+0

有點舊帖子,但想反正評論。我在我的母版頁上的 esausilva 2014-08-18 19:49:21