PageMethods is not Defined in ASPX Page
EnablePageMethods
actually only interacts with methods of a Page
subclass that are public
, static
, and attributed as a WebMethod
.
GetCompanyList
has 2 of those and just also needs to be static
.
[System.Web.Services.WebMethod()][System.Web.Script.Services.ScriptMethod()]public static IEnumerable<CompanyMinimum> GetCompanyList(int officeId) { // ...}
And, I suspect what's happening is that it's leaving PageMethods
undefined client-side if it doesn't find any methods that have all 3.
You can invoke ASP.NET AJAX Page Methods via jQuery, like this:
$.ajax({ type: "POST", url: "PageName.aspx/MethodName", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { // Do something interesting here. }});
maybe you are using Routing in your pages. then must be set real path after call PageMethods:
PageMethods.set_path("<%=ResolveUrl("~/YourPage.aspx")%>");PageMethods.YourMethod(param, OnSuccess, OnError);