文字控制模式之间的差异

时间:2010-09-09 04:43:28

标签: asp.net .net visual-studio literals

文字控制的passthrough和Transform模式之间有什么区别?

你也可以发一个例子吗?

2 个答案:

答案 0 :(得分:8)

有不同的文字模式Literal.Mode

  1. PassThrough:不会修改控件的内容。
  2. 编码:控件的内容将转换为HTML编码的字符串。
  3. 转换:不受支持的标记语言元素将从控件的内容中删除。如果在支持HTML或XHTML的浏览器上呈现Literal控件,则不会修改控件的内容。
  4. 查看此MSDN文章http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.mode.aspx

    并看看这个实现的例子 Use ASP.NET's Literal control to its full potential

答案 1 :(得分:7)

如果你反编译System.Web.UI.WebControls.Literal.Render,你会得到这个:

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

对于.NET 2.0和.NET 4.0,这是相同的。

所以无论文档说什么,Transform(默认)和PassThrough都没有区别。

如果我错了,请纠正我。有很多文章只是重复官方文档,但我希望看到一个代码示例,证明存在差异。