12

私の Pagemethod 実装が Chrome ブラウザで機能しません。VS 2008 で開発された ASP.NET 3.5 Web アプリケーションがあります。

以下のコードは chrome または Safari では機能しません:

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

function OnErrorFetchDataOnTabChange(error)
{   
   //Do something
}

function OnSuccessFetchDataOnTabChange(result)
{
   //Do something  
}
4

1 に答える 1

36

これは、次の手順に従ってすべてのブラウザーで機能するはずです。

  • ページ メソッドには System.Web.Services.WebMethod 属性が必要です。【ウェブメソッド】
  • ページ メソッドは public である必要があります。[Web メソッド] パブリック ...
  • ページ メソッドは静的でなければなりません。[Web メソッド] public static ...
  • ページ メソッドは、ページ (インラインまたはコード ビハインド) で定義する必要があります。コントロール、マスター ページ、またはベース ページでは定義できません。
  • ASP.NET AJAX スクリプト マネージャーでは、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)
{

}
于 2010-12-29T22:57:48.247 に答える