2014-01-19 45 views
2

我試圖使用pagemethods從JS調用函數方法背後的代碼,但它不是要求其也不拋出任何錯誤...PAGEMETHODS不是從JS功能工作

function example(){ 

pagemethods.method(); 
} 

**aspx.cs 
[webmethod] 
public static void method(){ 

//some logic 
} 

所以要找到這個問題我說「對象不支持此屬性或方法」。可我認爲這種情況下顯示pagemethods正在做針對

  1. 我評論WEBMETHOD則顯示錯誤的一些負面測試!

  2. 然後,我將JS函數中的調用方法名稱替換爲pagemethods.newmethod(),但我沒有將方法名稱更改爲newmethod ..我期待着一些錯誤,但它沒有給我一個錯誤..

注:我有 「的method = post」 的形式declaration..does它的效果pagemethods什麼..

如此困惑,爲什麼這個問題上正在發生的事情!

我們可以用任何其他方式調用codebehind方法,而不是pagemethods ..請教建議!

+0

爲什麼你認爲它不叫? – Grundy

+0

試試看[示例'在ASP.NET網頁中調用靜態方法](http://msdn.microsoft.com/en-us/library/bb398998(v = vs.110).aspx) – Grundy

+0

我正在調試帶有斷點的代碼,所以我沒有看到那個靜態方法被調用哪個曾經使用pagemethods.i調用我使用相同的概念,在「調用ASP.NET網頁中的靜態方法」中提到 – user3212507

回答

0

也許你可能會丟失的EnablePageMethods =您的aspx頁面真的......

+0

感謝您的答覆..i啓用該屬性,如果我不包括該屬性pagemethods本身給我錯誤..你可以告訴我是否有任何其他方式,我可以從JavaScript調用這些方法.. – user3212507

1

msnd你可以看樣這一點,所以你需要

在標記

<asp:ScriptManager ID="sm" runat="server" EnablePageMethods="true"> 
    <Scripts > 
     <asp:ScriptReference Path="pm.js" /> 
    </Scripts> 
</asp:ScriptManager> 

代碼在你身後的靜態方法,帶屬性[WebMethod]

pm.js這樣的事情

function example(){ 
    PageMethods.method(); 
} 

UPDATE
另一種變體使用了Ajax請求的,例如使用jQuery方法看起來這

function CallMethod(){ 
    $.ajax({ 
     type: "POST", 
     dataType: 'json', 
     contentType: "application/json; charset=utf-8", 
     url: "YourPage.aspx/yourmathod", 
     data:JSON.stringify({}), // parameters for method 
     success: function (dt) { alert(dt);}, //all Ok 
     error: function() { alert('error'); } // some error 
    }); 
}