Estoy usando formularios web para recopilar datos de un formulario y luego enviar los datos al código subyacente para enviarlos a una API. Usando un botón, llamo a un método de JavaScript que recopila los datos y luego los envía a mi archivo aspx.cs para enviarlos a la API. El código HTML del botón es
<button class="search btn" ID="btnSearch" onclick="searchApi(); return false;"><i class="fas fa-search"></i>Search</button>Esto ejecuta la función searchAPI() que funciona y crea una cadena concatenada llamada SearchData. El código Javascript se ve así
var searchString = JsonData; var trimsearchString = searchString.replace(/,/g, ''); $.ajax({ type: "POST", url: 'Default.aspx/GetApi', data: searchString, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { alert('success'); }, error: function (errordata) { console.log(errordata); alert(errordata); } });El método GetAPI en mi archivo Default.aspx.cs nunca se llama. El código del método es
[System.Web.Services.WebMethod] public static void GetApi(string searchData) {...El éxito: la función (datos) devuelve el éxito, pero el código detrás del método nunca se llama, ¿alguien puede decirme qué me estoy perdiendo?
corrija los datos de ajax, parece que no se puede encontrar el método con este parámetro
$.ajax({ type: "POST", url: 'Default.aspx/GetApi', data: { searchData: trimsearchString}, //or if it is still problem, you can even try data: JSON.stringify( { searchData: trimsearchString}), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { alert(data); }, error: function (errordata) { console.log(errordata); alert(errordata); } });y su método web debería devolver algo
[WebMethod] public static string GetApi(string searchData) { return searchData }