Llamar a un ‘WebMethod’ con jQuery en ASP.NET WebForms

Establecí un punto de interrupción en el siguiente WebMethod pero nunca voy a llegar al punto de interrupción.

cs:

 [WebMethod] public static string search() { return "worked"; } 

aspx:

  function search() { $.ajax({ type: "POST", url: "ProcessAudit/req_brws.aspx/search", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { alert(msg) } }); } 
  

    Asegúrese de haber habilitado los métodos de página en su elemento ScriptManager :

      

    y que ha cancelado la acción predeterminada del botón devolviendo false dentro del controlador onclick; de lo contrario, la página realiza una devolución de datos completa y su llamada AJAX puede que nunca tenga tiempo de finalizar. Aquí hay un ejemplo completo de trabajo:

     < %@ Page Language="C#" %>  < !DOCTYPE html>      

    Otra posibilidad es suscribirse al controlador de clics discretamente:

      

    y luego dentro de un archivo javascript separado:

     $('#btnSearch').click(function() { $.ajax({ type: 'POST', url: '< %= ResolveUrl("~/default.aspx/search") %>', data: '{ }', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (msg) { alert(msg.d) } }); return false; }); 

    También puede observar el uso de la propiedad msg.d dentro de la callback msg.d que utiliza ASP.NET para incluir toda la respuesta, así como el uso del método ResolveUrl para generar correctamente la url en el método de página en lugar de codificarla.

    Una llamada más optimizada será

     function search() { $.ajax({ type: "POST", url: '< %= ResolveUrl("~/ProcessAudit/req_brws.aspx/search") %>', data: "{}", contentType: "application/json", success: function (msg) { msg = msg.hasOwnProperty("d") ? msg.d : msg; alert(msg); } }); } 

    No es necesario proporcionar un asp:ScriptManager en absoluto.

    Recurso: http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

    Su botón actual está causando una devolución de datos completa. Simplemente agregue un tipo = “botón” a su botón para evitar esto.

       

    -Shazzam yo

    ¿Cómo implementar el método web ASP.Net usando JQuery AJAX?

    Página HTML:

             Submit   

    Código detrás:

     [WebMethod] public static string SaveData(string name, string gender, string age) { try { return "OK"; } catch (Exception ex) { return ex.Message; } finally { } } 

    Recurso: http://www.sharepointcafe.net/2016/10/how-to-call-aspnet-web-method-using-jquery-ajax.html