Existen ocasiones que necesitamos dejar por un lado el HTML y responder XML, json, etc. Muchas veces hemos utilizado una página ASPX y el Response.Write para estos fines, sin embargo, existe otra opción… Los ASP.NET Generic Web Handler cuando trabajamos con ASP.NET WebSites.
No es que sea totalmente malo utilizar una ASPX, en realidad el punto es que toda ASPX hereda de System.Web.UI.Page y éste incluye ovehead que no necesitamos para lo que necesitamos.
Primero agregamos al proyecto nuestro Handler
Una vez creado, obtendremos el código definido por el template
Quien hace acá la magia es esta directiva:
Básicamente, define que la Clase “Handler” se debe instanciar para manejar la respuesta al llamar a dicho archivo.
Recordemos definir siempre el content type, el cual en este ejemplo definiré para javascript “application/x-javascript” y la respuesta (que para efectos de este post lo dejaré con un Response.Write) la modificaré para retornar un array en formato json, lo que nos lleva a una clase así:
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/x-javascript";
context.Response.Write("{testlist:['value 1','value 2', 'value 3']}");
}
public bool IsReusable {
get {
return false;
}
}
}
Al correr el scritp este es el resultado:
Aclaro… Existen formas para serializara diferentes formatos, para relacionarlo con el ejemplo pueden ver la documentación en msdn de Script Serialization








