Yo diría que hay diferencias, pero tienden a decir que lo hagas de la forma en que te sientas más cómodo.
He utilizado ambos enfoques, y tener llamadas jQuery desde la página es generalmente más rápido. Escribo un manejador de ashx que hace el trabajo que necesita la llamada jquery (consultar la base de datos, procesar algo, etc.) y llamarlo desde la página. No utilizaría una página aspx para una llamada a jQuery, porque está enviando mucha información que no necesitará en absoluto. La diferencia/beneficio de usar una llamada Ajax.Net es que no necesita construir otra página para procesar cosas, puede usar los mismos eventos de página para hacerlo.
Por ejemplo, si necesita completar una segunda lista desplegable utilizando el valor seleccionado en una primera, podría usar Ajax.Net para llamar a SelectedIndexChanged en el código de la página y cuando se apague, vaya a Page_Load, SelectedIndexChanged, Page_PreRender y así sucesivamente. En el caso del método, consultarías el db y llenarías el segundo ddl.
Con jQuery eso podría ser un poco diferente. Usted hace su llamada a un manejador de ashx, el manejador es solo un método de servidor que hace la magia y devuelve datos en la forma que desea (json, matriz de cadenas, xml, etc.) y llena el segundo ddl usando javascript. Como les dije antes, algunas personas no se sienten demasiado cómodas con el código del Cliente y tienden a hacerlo en el servidor, pero siempre les digo que deben usar la herramienta correcta para el trabajo correcto, así que conozcan sus herramientas y aplícalos sabiamente.
Si quiere saber más sobre ASP.Net, ASHX handlers y jQuery, puede leer un post que escribí al respecto.
espero que helps.-
Gracias por la respuesta. ¿Pueden los métodos de página ser no estáticos? He usado devoluciones de llamada antes y no había ningún requisito para que sean estáticas. De esta manera, podría tener acceso a los métodos de clase base. En Page Methods, no puedo. – Nick
¡Es un placer! En cuanto a los métodos de página, deben ser estáticos porque Asp.Net no creará (y no puede) instancias de su clase de página al ejecutar un método de página. Este artículo hace un buen trabajo explicando por qué (y por qué es generalmente deseable): http://encosia.com/2008/04/16/why-do-aspnet-ajax-page-methods-have-to-be-static /. Habiendo dicho eso, fue un gran descuido no discutir eso en mi respuesta. Actualizaré la respuesta para incluir esa información. –
Me gustaría poder votar dos veces esa respuesta. Gracias Jeff! –