用于添加运行时生成的HTML标记的占位符与文字



这个问题指出了文字vs标签,而这个问题指出了面板vs占位符,但就在今天,我和我的同事争论使用PlacHolder vs Literal添加在运行时生成的HTML标记。这两个控件都不产生任何额外的标记,但我们正在寻找合适的控件来动态地添加生成的标记。这个问题的答案建议使用这两种方法来添加生成的标记,所以我想知道我们应该使用哪种控制/方法来添加生成的标记,而不是更多。

都不呈现自己的任何标记(这可能是一件非常好的事情)。但是,Placeholder可以包含子控件,而Literal不能。

通过比较,Placeholder可以包含其他控件,但不具有Text属性。

我想知道我们应该使用哪种控制/方法来添加生成标记,仅此而已。

如果"生成"是指最终结果是字符串,我会使用Literal。如果要生成控件树,则将这些控件附加到Placeholder .

或者,如果您想完全省略服务器控件的声明:

<h2>Hello World</h2>
<p>The following is generated markup.</p>
<%= base.GetGeneratedMarkup() %>

我相信Literal仍然是在这种情况下生成的,但它允许您将生成的内容与页面/控件的标记部分混合(类似于Razor)。

PlaceHolder vs Literal for adding HTML

主要的区别是文字控件有Text属性(和模式),也保存在Viewstate上,PlaceHolder是完全空的。

所以你可以使用一个文字控件直接添加一些字符串html代码,你可以使用占位符添加一些其他控件但不添加任何直接的html代码

相关内容

  • 没有找到相关文章

最新更新