Llamada al método Ajax

Intento llamar a un método simple en mi código detrás de usar Jquery con Ajax. Pero recibo una excepción 404 no encontrada cada vez. Lamentablemente, esta es una solución de formularios web. Así que no tengo todas las ventajas de MVC 🙁

Entra en el método javascript y da la alerta, pero no entra en mi método c #. Mi experiencia previa en el uso de este método Jquery está en un sitio web de MVC. ¿Es compatible con sitios de webforms?

Mi Javascript es:

$(document).ready(function() { $('#btn_').click(function() { var value = $('#twink').val(); something(value); }); }); function something(theval) { alert(theval); $.ajax({ type: "POST", url: "/Default.aspx/MyMethod?something=" + theval, data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { alert(msg); } }); } } 

Y mi código C # es:

  public JsonResult MyMethod(string something) { JsonResult ret = new JsonResult(); return ret; } 

Gracias por adelantado.

Su método devuelve JsonResult . Esto es específico de MVC y no puede usarlo en una aplicación de formularios web.

Si desea invocar métodos en el código subyacente en una aplicación clásica de WebForms, puede usar PageMethods :

 [WebMethod] public static string GetDate() { return DateTime.Now.ToString(); } 

Y luego llamar al método:

 $.ajax({ type: 'POST', url: 'PageName.aspx/GetDate', data: '{ }', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function(msg) { // Do something interesting here. } }); 

Y aquí hay un ejemplo completo de trabajo que escribí para ti:

 <%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Services" %>          

Los métodos de página no están limitados a tipos de argumentos simples. Puede usar cualquier tipo como entrada y salida, se serializará automáticamente con JSON.

Su WebMethod no se ve correcto …

Un buen tutorial: http://www.brainbell.com/tutorials/ASP/A_Web_Service_In_ASP.NET.html