2010-09-09 8 views

Répondre

6

Il existe différents modes littérales Literal.Mode

  1. PassThrough: Le contenu du contrôle ne sont pas modifiés.
  2. Encode: Le contenu du contrôle est converti en une chaîne codée en HTML.
  3. Transformation: Les éléments de langage de balisage non pris en charge sont supprimés du contenu du contrôle. Si le contrôle Literal est rendu sur un navigateur prenant en charge HTML ou XHTML, le contenu du contrôle n'est pas modifié.

Jetez un oeil à cet article MSDN http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.mode.aspx

et jeter un oeil à cette mise en œuvre par exemple Use ASP.NET's Literal control to its full potential

+0

bonne réponse +1 .......;) – Azhar

+0

quelle sera la valeur par défaut si le 'Mode' n'est pas spécifié? –

4

Si vous décompiler System.Web.UI.WebControls.Literal.Render, vous obtenez ce :

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

Il en est de même pour .NET 2.0 et .NET 4.0. Donc, quelle que soit la documentation, il n'y a pas de différence entre Transform (par défaut) et PassThrough.

Corrigez-moi si je me trompe. Il y a beaucoup d'articles qui ne font que répéter la documentation officielle, mais j'aimerais voir un exemple de code qui prouve qu'il y a une différence.

+1

+1 Je suis d'accord avec vous, 'Transform' et' PassThrough' sont traités de la même façon. –

Questions connexes