2010-11-30 5 views
9

My Pagemethodの実装がChromeブラウザで動作していません。 私はASP.NET 3.5 Webアプリケーションは、クロムまたはSafariで動作していない下にVS 2008asp.netのページメソッド

でコードを開発している:後半の応答のための

function FetchDataOnTabChange(ucName) 
{ 
    PageMethods.FetchData(ucName, OnSuccessFetchDataOnTabChange, OnErrorFetchDataOnTabChange); 
} 

function OnErrorFetchDataOnTabChange(error) 
{ 
    //Do something 
} 

function OnSuccessFetchDataOnTabChange(result) 
{ 
    //Do something 
} 
+0

はい、IE7以上でMozillaは正常に動作しますが、ChromeとSafariではうまく動作しません。私は最後の質問にコメントしたくありません。 – Chetan

+0

回答が必要な場合は、いくつかのコードを投稿する必要があります –

+0

javascriptで使用するコードも提供できますか? Chromeにもjavascriptをデバッグするための開発ツールがあります。 __ctrl + shift + j__ – XIII

答えて

23

申し訳ありませんが、いずれかが、この後につまずく場合には、これは以下の手順ですべてのブラウザで動作するはずです。

  • ページの方法は System.Web.Services.WebMethod 属性を持っている必要があります。 [WebMethod]
  • ページメソッドは公開されている必要があります。 [WebMethod] public ...
  • ページメソッドは静的である必要があります。 [WebMethod] public static ...
  • ページメソッドは、 ページ(インラインまたは コードビハインド)で定義する必要があります。コントロール、マスタページ、またはベース ページで を定義することはできません。
  • ASP.NET AJAX Script Managerは、 にEnablePageMethodsをtrueに設定する必要があります。

これは動作するアプリケーションから

aspxページです:背後

/* the script manager could also be in a master page with no issues */ 
<asp:ScriptManager ID="smMain" runat="server" EnablePageMethods="true" /> 
<script type="text/javascript"> 
    function GetDetails(Id) { 
     PageMethods.GetDetails(doorId); 
    } 
</script> 

コード:

[System.Web.Services.WebMethod] 
public static void GetDetails(string Id) 
{ 

} 

幸運! :-)

+0

私はこれを理解していません: "ページメソッドは基本ページで定義できません"。理由を説明できますか?私はハンドラを使用しなければなりません。 – donRumatta

+0

残念なことに、私は技術的な理由 "理由"はわかりませんが、MasterPageはSystem.Web.UI.Pageから継承しないため、答えはPageMethodsは技術的にはページではなく実際にはSystem.Web .UI.MasterPage。 – hardba11

+1

この回答は古いと思います。ここで私の質問を参照してください:http://stackoverflow.com/questions/20554780/inconsistent-pagemethod-behavior-in-different-browsersあなたのすべてのステップに続いて、結果が混在しています。 – LittleBobbyTables

関連する問題