1

我正在编写一个 asp.net 服务器端控件,其中传递了一些简短的参数,但还需要允许提供大量自定义 HTML 代码。

我认为最简单的方法是允许在服务器控件的标签之间指定,如下所示:

<MyControl:Example Runat="server" Id="myControl" Message="This is a message">
  <p>This is a long piece of HTML a few dozen lines long...</p>
</MyControl>

如何从自定义服务器控件内部访问标签之间的文本?

4

1 回答 1

3

您需要创建一个模板化控件:

<MyControl:Example Runat="server" Id="myControl" Message="This is a message"> 
  <HtmlContent><p>This is a long piece of HTML a few dozen lines long...</p></HtmlContent>
</MyControl> 

HtmlContent你的模板在哪里。通常当我需要模板时,我只是使用 PlaceHolder 代替。

public class MyControl : CompositeControl 
{ 
    [TemplateContainer(typeof(PlaceHolder))] 
    [PersistenceMode(PersistenceMode.InnerProperty)] 
    public PlaceHolder HtmlContent { get; set; } 

    ... render stuff

}

是 MSDN 上的一个示例:

于 2012-05-17T11:52:55.540 回答