2010-09-09 7 views

risposta

6

Ci sono diverse modalità letterali Literal.Mode

  1. PassThrough: Il contenuto del controllo non vengono modificati.
  2. Codifica: Il contenuto del controllo viene convertito in una stringa con codifica HTML.
  3. Trasforma: Gli elementi del linguaggio di markup non supportati vengono rimossi dal contenuto del controllo. Se il controllo Letterale viene eseguito su un browser che supporta HTML o XHTML, i contenuti del controllo non vengono modificati.

Date un'occhiata a questo articolo di MSDN http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.mode.aspx

e dare un'occhiata a questo esempio implementato Use ASP.NET's Literal control to its full potential

+0

nice answer +1 .......;) – Azhar

+0

quale sarà l'impostazione predefinita se il 'Mode' non è specificato? –

4

Se decompilare System.Web.UI.WebControls.Literal.Render, si ottiene questo :

protected internal override void Render(HtmlTextWriter writer) 
{ 
    string text = this.Text; 
    if (text.Length != 0) 
    { 
     if (this.Mode != LiteralMode.Encode) 
     { 
      writer.Write(text); 
     } 
     else 
     { 
      HttpUtility.HtmlEncode(text, writer); 
     } 
    } 
} 

Questo è lo stesso per .NET 2.0 e .NET 4.0.

Quindi, qualunque sia la documentazione che dice, non c'è differenza tra Transform (default) e PassThrough.

Per favore correggimi se sbaglio. Ci sono molti articoli che ripetono semplicemente la documentazione ufficiale, ma mi piacerebbe vedere un esempio di codice che dimostra che c'è una differenza.

+1

+1 Sono d'accordo con te, 'Transform' e' PassThrough' sono trattati allo stesso modo. –