Un custom control per inserire il contenuto di file

di Daniele Bochicchio, in ASP.NET, C#, Custom Server Controls,

Nello script #366 abbiamo visto come Response.WriteFile permetta con estrema facilità di scrivere a video il contenuto di un file HTML.
Seppur comod, di default non permette di inserire in un punto esatto della pagina il contenuto del file da leggere. E' dunque necessario creare un custom control, cosa che lo rende facile e possibile:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

namespace ASPItalia.com.WebControls
{
  public class WriteFile: System.Web.UI.WebControls.WebControl
  {
    // proprietà per indicare il file da cui leggere
    public string FileName
    {
      set {filename = value;}
      get {return filename;}
    }
    private string filename;

    // scrivo a video
    protected override void Render(HtmlTextWriter output)
    {
      // scrivo il contenuto del file
      if (filename != null)
      {
        HttpContext ctx = HttpContext.Current;
        ctx.Response.WriteFile(ctx.Server.MapPath(filename));
      }
    }
  }
}

Basterà inserire il control in questo modo per avere il contenuto del file stampato nell'esatto punto della pagina:

<aspitalia:WriteFile Filename="evidenza.htm" runat="server" />

Questa tecnica permette, con facilità, di utilizzare anche il fragment caching su uno user control che contenga a sua volta questo custom control, in modo da minimizzare l'accesso al disco per la lettura del file.

Approfondimenti

#366 - Leggere un file ed inserirne il contenuto sulla pagina corrente con ASP.NET
https://www.aspitalia.com/liste/usag/script.aspx?ID=366

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi