Martes, 17 de Julio de 2007 por
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]





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.
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.