2010-09-09 9 views

Respuesta

6

Existen diferentes modos de literales Literal.Mode

  1. PassThrough: Los contenidos del control no se modifican.
  2. Encode: El contenido del control se convierte en una cadena codificada en HTML.
  3. Transform: Los elementos de lenguaje de marcado incompatibles se eliminan de los contenidos del control. Si el control literal se representa en un navegador que admite HTML o XHTML, los contenidos del control no se modifican.

Tener un vistazo a este artículo de MSDN http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.mode.aspx

y echar un vistazo a este ejemplo Use ASP.NET's Literal control to its full potential

+0

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

+0

¿Cuál será el valor predeterminado si no se especifica 'Mode'? –

4

Si descompilar System.Web.UI.WebControls.Literal.Render implementado, se obtiene este :

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); 
     } 
    } 
} 

Esto es lo mismo para .NET 2.0 y .NET 4.0.

Por lo que dice la documentación, no hay diferencia entre Transform (predeterminado) y PassThrough.

Corrígeme si me equivoco. Hay muchos artículos que simplemente repiten la documentación oficial, pero me gustaría ver una muestra de código que demuestre que hay una diferencia.

+1

+1 Estoy de acuerdo contigo, 'Transform' y' PassThrough' se tratan de la misma manera. –

Cuestiones relacionadas