Search code examples
jqueryasp.netajaxwebmethodpagemethods

jquery PageMethod saying the method does not exist


i am trying to get a value of this asp.net function :

[ScriptMethod, WebMethod]
public static bool checkRefresh()
{
    return isChanging;
}

by calling it in jquery using the PageMethod:

var isAllowed = false;
$("#edit").click(function () {
    PageMethods.editFunc();
    PageMethods.checkRefresh(DisplayMyResult);   //this line gives the error, though it's probably because it's first.
});

function DisplayMyResult(ResultString) {
    isAllowed = ResultString;
    if (isAllowed == true || isAllowed == "true") {
        location.reload();
    }
    else {
        PageMethods.checkRefresh(DisplayMyResult);
    }
}

the error i get (in the chrome console) is

Uncaught TypeError: Object function () {
PageMethods.initializeBase(this);
this._timeout = 0;
this._userContext = null;
this._succeeded = null;
this._failed = null;
} has no method 'checkRefresh'

i do not know why is it not working, can anyone help?


Solution

  • rather than using ScriptManager I would like to calling the page method with jQuery instead. please go through this nice article Using jQuery to directly call ASP.NET AJAX page methods

      [WebMethod]
      public static string checkRefresh()
      {
        return isChanging;
      }
    
    
    $.ajax({
      type: "POST",
      url: "PageName.aspx/checkRefresh",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(msg) {
        // Do something interesting here.
       }
    });