这个问题涉及到Literal和Label的区别,而这个问题则提到了Panel和PlaceHolder的区别,但今天我和我的同事在讨论使用PlacHolder和Literal来添加在运行时生成的HTML标记。这两个控件都不会产生任何额外的标记,但我们正在寻找适合在运行时添加生成的标记的控件。这个问题的答案建议同时使用这两个控件添加生成的标记,所以我想知道我们应该使用哪个控件/方法来仅仅添加生成的标记而已。
这个问题涉及到Literal和Label的区别,而这个问题则提到了Panel和PlaceHolder的区别,但今天我和我的同事在讨论使用PlacHolder和Literal来添加在运行时生成的HTML标记。这两个控件都不会产生任何额外的标记,但我们正在寻找适合在运行时添加生成的标记的控件。这个问题的答案建议同时使用这两个控件添加生成的标记,所以我想知道我们应该使用哪个控件/方法来仅仅添加生成的标记而已。
两者都不生成它们自己的标记(这可能是非常好的事情)。然而,Placeholder
可以包含子控件,而 Literal
不能。
相比之下,Placeholder
可以包含其他控件,但没有 Text
属性。
我想知道我们应该使用哪种控件/方法来添加生成的标记而不做其他任何事情。
如果您所说的“生成的”是指最终结果是字符串,则应使用 Literal
。如果您正在生成控件树,请将这些控件追加到 Placeholder
上。
或者,如果您想完全省略服务器控件的声明:
<h2>Hello World</h2>
<p>The following is generated markup.</p>
<%= base.GetGeneratedMarkup() %>
我相信在幕后仍然会为此生成文字,但它允许您将生成的内容与页面/控件的标记部分混合使用(类似于Razor)。
PlaceHolder vs Literal for adding HTML