Al programar con ASP.NET, abrir una página generalmente implica especificar una dirección de hipervínculo y llamar al archivo de página especificado (.html, .aspx) y otros métodos.
Sin embargo, si el contenido del archivo de página que está a punto de abrirse se genera dinámicamente en el programa o se extrae de la tabla de la base de datos, ¿cómo mostramos el contenido?
Nuestra idea más directa es guardar el contenido en un archivo de página web y luego llamarlo. Este método es ciertamente posible, pero no es el mejor porque generará muchos archivos temporales en el servidor web que tal vez nunca se utilicen.
Otra mejor manera es utilizar el flujo de formato de texto para mostrar dinámicamente el contenido de la página. Por ejemplo, hay una página:
…
...
Debe utilizar iFrame para abrir una página y el contenido de esta página se genera dinámicamente. Podemos escribir un archivo .ashx (llamado aquí html.ashx) para procesar. El archivo .ashx implementa la clase de interfaz IHttpHandler, que puede generar directamente el formato de datos utilizado por el navegador.
Contenido del archivo html.ashx:
<%@ WebHandler Language="C#" Class="Handler" %>
usando System;
usando System.IO;
usando System.Web
controlador de clase pública: IHttpHandler {
public bool IsReusable {
conseguir {
devolver verdadero;
}
}
ProcessRequest pública vacía (contexto HttpContext)
{
// Configurar la configuración de respuesta
contexto.Response.ContentType = "texto/html";
contexto.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.BufferOutput = false;
Stream stream = null;
cadena html = "
Éxito: prueba de txt.ashx";= new MemoryStream(html2bytes)
if (flujo == nulo);
stream = new MemoryStream(System.Text.Encoding.ASCII.GetBytes("
//Escribe el flujo de texto en el flujo de respuesta
const int tamaño del búfer = 1024 * 16;
byte[] buffer = nuevo byte[buffersize];
int count = stream.Read(búfer, 0, tamaño del búfer);
mientras (cuenta > 0)
{
contexto.Response.OutputStream.Write(búfer, 0, recuento);
recuento = flujo.Read(búfer, 0, tamaño del búfer);
}
}
}
En el archivo html.ashx, la cadena primero se convierte en una matriz de bytes, luego se genera el flujo de datos MemoryStream en la memoria y finalmente se escribe en el objeto OutputStream y se muestra.
De esta manera, podemos mostrar la página generada dinámicamente a través de y mostrar el contenido de la página web de "Éxito: prueba de txt.ashx". En la cadena html = "
Éxito: prueba de txt.ashx" en el archivo html.ashx, el contenido de la variable html se puede obtener de la base de datos (poner). un html por adelantado. El contenido del archivo se guarda en la base de datos).Autor: Zhang Qing ( http://www.why100000.com )