Mostrar PDF en IFRAME dentro de Master Page

En algunas ocasiones es necesario mostrar archivos PDF en un sitio Web, por ejemplo, en un Sistema que genera Ordenes de Pago, pues es lógico pensar que las ordenes generadas sean mostradas en un Web Form, para su impresión o almacenamiento por parte del cliente.

He aquí una forma de mostrar un archivo PDF creado en Directorios de la aplicación (Servidor) en un Web Form, hijo de una Master Page.

ASPX


<iframe id="pdf" runat="server" height="800" width="600"><iframe>

Como puedes darte cuenta, coloco la etiqueta runat=”server”, esto hace visible este control del lado del servidor.

C#

//Nuevo control HTML y Buscamos dentro del ContentPlaceHolder del sitio llamado "contenido"
HtmlControl frame1 = (HtmlControl) Page.Master.FindControl("Contenido").FindControl("pdf");
//Asignamos a la propiedad "src" la ruta donde se genero el archivo
frame1.Attributes["src"] = "../../Documentos/" + Session["usuario"] + ".pdf";

Con esto se le indica al contro iframe (de lado del cliente), la ruta del archivo PDF (del lado del servidor). Esto bastará para mostrarse correctamente.

Saludos.
Gracias.

Actualizar contenido dentro de un IFRAME

Usualmente la etiqueta <iframe> se utiliza para mostrar contenido web dentro de un sitio web, si este contenido web dentro del frame no cambia no existe mucha complicación, pero si el contenido esta cambiando automáticamente y es necesario mostrar la versión mas actual existe el inconveniente de que el navegador pueda guardar en cache este contenido y no se muestre como nosotros queremos.

Una solución fácil y rápida, siempre y cuando el contenido que se muestre en el iframe sea nuestro, es el de agregar las siguientes metas que evitan que el contenido se guarde en cache y se muestre la versión mas reciente de este contenido:


<head>
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
</head>

Adémas, también se pueden utilizar si queremos que al dar clic en botón atrás del navegador, la pagina no se quede con datos sino que refresque.

Gracias