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 属性。[网络方法]
  • 页面方法必须是公共的。[WebMethod] 公开...
  • 页面方法必须是静态的。[WebMethod] 公共静态...
  • page 方法必须在页面上定义(内联或在代码隐藏中)。它不能在控件、母版页或基本页中定义。
  • ASP.NET AJAX 脚本管理器必须将 EnablePageMethods 设置为 true。

这是来自工作应用程序

页面:

/* 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 回答