asp.net中的Pagemethods

Che*_*tan 10 asp.net asp.net-ajax pagemethods

我的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  
}
Run Code Online (Sandbox Code Playgroud)

har*_*a11 27

对于迟到的回复感到抱歉,但是如果有人稍后发现这种情况,则应该按照以下步骤在所有浏览器中使用.

  • 页面方法必须具有System.Web.Services.WebMethod属性.[的WebMethod]
  • 页面方法必须是公共的.[WebMethod]公开......
  • 页面方法必须是静态的.[WebMethod]公共静态...
  • 页面方法必须在页面上定义(内联或代码隐藏).它无法在控件,母版页或基页中定义.
  • 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>
Run Code Online (Sandbox Code Playgroud)

代码背后:

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

}
Run Code Online (Sandbox Code Playgroud)

祝好运!:-)

  • @ColoradoRockie,我认为你说的“……不能在控件、母版页或基页中定义……”是不正确的。这是完全有可能的。在派生自 ASP.NET“页面”类的任何类中定义“页面方法”。当调用派生页面时,将注入该方法的脚本。 (2认同)