文字控制模式之间的差异

Sri*_*ava 8 .net asp.net literals visual-studio

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

你也可以发一个例子吗?

Muh*_*tar 8

有不同的文字模式 Literal.Mode

  1. PassThrough:不修改控件的内容.
  2. 编码:控件的内容将转换为HTML编码的字符串.
  3. 转换:从控件的内容中删除不支持的标记语言元素.如果在支持HTML或XHTML的浏览器上呈现Literal控件,则不会修改控件的内容.

看看这篇MSDN文章http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.mode.aspx

并查看这个实现的示例 使用ASP.NET的Literal控件充分发挥其潜力


Joe*_*ech 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这与.NET 2.0和.NET 4.0相同.

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

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