Martes, 17 de Julio de 2007 por climens

Escribir texto con ASP.NET

Me ha surgido la necesidad de devolver un texto al realizar una llamada a una página ASP.NET, para sustituir un script antiguo pero sin tener que cambiar nada de las páginas que se comunican con esta.

Lo primero que hay que hacer es, cambiar la página .aspx para que la salia no sea html sino texto plano, cambiando la etiqueta ContentType de la directiva @Page:

 
<%@ Page Language="C#" ContentType="text/plain" AutoEventWireup="true"
 CodeBehind="Default.aspx.cs" Inherits="Proyecto1._Default" %>

Después, el código por detrás sería algo similar a esto:

 
namespace Proyecto1{
    public partial class _Default : System.Web.UI.Page{
        protected void Page_Load(object sender, EventArgs e)
        {
            string salida= "Texto que se va a mostrar";
            StreamWriter writer =
                new StreamWriter(Response.OutputStream, System.Text.Encoding.ASCII);
 
            writer.Write(result);
            writer.Close();
        }
    }
}

Y eso es todo, así de sencillo.

Se pueden hacer variaciones, por ejemplo para escribir XML, que puede ser mucho más útil. Para ello habría que cambiar el ContentType a "text/xml" y después, en vez de usar el StreamWriter, crear algo similar a esto:

 
XmlTextWriter writer =
    new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8);

Con esto por ejemplo se pueden escribir XML para pasarlos a algún web service poco estándar o para alguna llamada AJAX.

Via | Creating XML Documens with the XmlTextWriter class [4guysfromrolla.com]

Compartir | meneame | fresqui | del.icio.us | digg | technorati
Tags: , , | 2 comentarios

2 comentarios en “Escribir texto con ASP.NET”

  1. Fabian comentó el Viernes, 16 de Noviembre de 2007 a las 10:45

    Hola Climens.
    He probado lo que tu dices tanto en c# como en VB .NET y he notado
    que no lo pasa a texto plano. O sea cuando le doy click derecho sobre la url
    que genera la aplicacion, voy a propiedades y el tipo sigue siendo “HTML Document”. No sabes como se puede hacer para que la URL quede en texto plano, vale decir que si tiras un .txt dentro del explorer, y luego te fijas en que
    formato esta y debe decir “Tipo: Documento de Texto”…?
    En mi caso necesito que la URL pase a texto plano ya que debo responder peticiones y solo acepta si estan en texto puro. Gracias y saludos. Trabajo
    en VB .NET 2003 o 2005.

  2. climens comentó el Lunes, 19 de Noviembre de 2007 a las 9:36

    Fabian,
    No sé porqué IE te dice que es un HTML Document, desde luego la cabeceras HTTP del servidor dejan claro que es de tipo “text/plain”:

    HTTP/1.x 200 OK
    Server: ASP.NET Development Server/8.0.0.0
    Date: Mon, 19 Nov 2007 08:33:11 GMT
    X-AspNet-Version: 2.0.50727
    Cache-Control: private
    Content-Type: text/plain
    Content-Length: 15
    Connection: Close

    Aun así, creo que si el contenido es código HTML, Explorer lo sigue interpretando como tal y no como texto plano, no lo he comprobado.

Deja tu comentario