Sé que los controladores MVC son bastante buenos para servir solicitudes AJAX formateadas en JSON, pero ¿hay alguna función incorporada de ASP.NET que pueda usar para estas llamadas de tipo desde un sitio simple y antiguo de formularios web?¿Cómo hago el servidor de llamadas AJAX usando JSON con formularios web?
Respuesta
Puede usar ASP.NET AJAX incorporado.
Opción 1 - usar un servicio web (si desea que la funcionalidad sea reutilizable):
- crear un servicio Web (.asmx) con el atributo [ScriptService],
- añadir una a su página y agregue el servicio web a su colección de Servicios,
- use el proxy de JavaScript generado por ScriptManager en su página.
Opción 2 - Métodos de página uso (si desea que la funcionalidad en una sola página sin crear un servicio web):
- definen los métodos estáticos en su página, añadir [WebMethod] atribuir a ellos,
- agregue un ScriptManager con EnablePageMethods = "true",
- use el objeto PageMethods para llamar a estos métodos desde JavaScript.
En ambos casos, JSON se utilizará para la transferencia de datos.
Aquí hay una extensa tutorial con algunos ejemplos de código.
Sin embargo, a menudo se culpa a ASP.NET AJAX por su ineficiencia, por ejemplo, el JS que genera tiende a ser bastante grande. Entonces, si le preocupa el rendimiento, querrá probarlo a fondo.
También puede echar un vistazo a este tema: .NET AJAX Calls to ASMX or ASPX or ASHX?
Use manipulador de web genérico. es decir, ashx. Estos son incluso más rápidos que las acciones MVC.
Si tienes .NET 3.5 instalado en el servidor, se puede aprovechar el JSON serialization tools que se incluyen con el marco.
Esto usa la clase DataContractJsonserializer.
La API web funciona bien con Web Forms. http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-aspnet-web-forms
En teoría, puede. Sin embargo, en el uso práctico, puede resolver el problema de bloqueo de sesión: cada solicitud desde la página de formulario web está asociada a la sesión del usuario de manera predeterminada, por lo que solo puede hacer solicitudes ajax una a una.Puede o no ser importante para su proyecto –
Puede usar la sesión de solo lectura para la mayoría de las solicitudes y leer y escribir para iniciar sesión/cerrar sesión. Evita el problema de bloqueo. La sesión no está habilitada para la API web de manera predeterminada. Tengo que llamar al método desde Application_PostAuthorizeRequest: HttpContext.Current.SetSessionStateBehavior (SessionStateBehavior.ReadOnly); –
Me preocupa, porque intentamos incluir un módulo API web en un formulario web heredado de ASP.NET. Es cierto que la API web no tiene sesión de forma predeterminada, pero cuando se combina con el formulario web, lo hace. Incluso podemos leer la información de la sesión desde la solicitud de la API. En el caso común, no es un problema, hasta que tengamos una pesada API llamada –
Mi método preferido en este escenario está utilizando un controlador genérico web (.ashx) y JSON.net http://james.newtonking.com/json
Es muy sencillo, rápido y ligero.
Un ejemplo sencillo sería:
public void ProcessRequest(HttpContext context)
{
string jsonOutput = string.Empty;
context.Response.ContentType = "application/json";
using (var db = new MyDBContext())
{
var dbResult = db.myobject.select();
jsonOutput = Newtonsoft.Json.JsonConvert.SerializeObject(dbResult);
}
context.Response.Write(jsonOutput);
}
- 1. usando SetTimeout con llamadas Ajax
- 2. Cómo encadenar llamadas ajax usando jquery
- 3. ¿Cómo hago formularios html con sinatra?
- 4. Llamadas de Ajax al subdominio
- 5. ¿Cómo hacer llamadas Ajax con Rails 3 usando remote_function?
- 6. ¿Cómo evito el envío de formularios hasta que hayan finalizado varias llamadas ajax? jQuery
- 7. sondeando el servidor con ajax
- 8. Creación de JSON en el servidor con Google Web Toolkit
- 9. cola de llamadas AJAX
- 10. Usando llamadas básicas AJAX dentro de Magento
- 11. presentando múltiples formularios con AJAX
- 12. Envío con comillas simples usando jQuery, Ajax y JSON
- 13. Jquery Ajax Publicar json en el servicio web
- 14. Hacer llamadas AJAX seguras
- 15. JSON: ¿Cómo hago una llamada JSON entre dominios?
- 16. ¿Cómo enviar un formulario con AJAX/JSON?
- 17. Cómo "proteger" las llamadas AJAX?
- 18. Ajax de llamadas en la aplicación cliente Java
- 19. Enrutamiento ASP.NET con formularios web
- 20. ¿Cómo implementar la protección CSRF en llamadas Ajax usando express.js (buscando el ejemplo completo)?
- 21. Llamadas de JQuery Ajax con autenticación básica de HTTP
- 22. Desactivar BlockUI con certeza llamadas Ajax
- 23. Cómo "ejecutar" json del servidor al cliente usando javascript
- 24. Enviando JSON a PHP usando ajax
- 25. validación de formularios Ajax en CodeIgniter
- 26. jQuery - $ .ajax POST no envía al servidor web .data
- 27. Errores personalizados de PHP para llamadas AJAX
- 28. Solicitud JSON con JQuery/Ajax con Spring
- 29. ¿Cómo subir archivos al servidor usando JSP/Servlet y Ajax?
- 30. Cómo bloquear el sitio web usando el servidor SQUID
métodos página fue la solución. – ProfK