ASP.NET Website Generic Handlers

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

image

Una vez creado, obtendremos el código definido por el template

image

Quien hace acá la magia es esta directiva:

image

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:

image

Aclaro… Existen formas para serializara diferentes formatos, para relacionarlo con el ejemplo pueden ver la documentación en msdn de Script Serialization

Comparte Este Post:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • FriendFeed

About fboiton

I'm a Software Developer specialized in Web Solutions for Large Scale and High Availability Applications, with more than 8 years of experience in Web Applications development. Software Architecture, Team Management and Continous Improvement are my bigger interests. Specialties ASP.NET, SQL Server, Web Development in general, Linux Servers, Software Architecture, Team Management.
This entry was posted in Desarrollo de Software and tagged , , , , , . Bookmark the permalink.

Leave a Reply