如何使我的ASP.NET服务器控件将嵌入的代码块作为属性值?

如何使我的ASP.NET服务器控件将嵌入的代码块作为属性值?,asp.net,web-controls,servercontrols,Asp.net,Web Controls,Servercontrols,我有一个属性为Title的自定义服务器控件。使用控件时,我希望在aspx页面中设置标题的值,如下所示: <cc1:customControl runat="server" Title='<%= PagePropertyValue%>' > more content </cc1:customControl> 更多内容 但是,当我这样做时,我得到的是显示的确切字符串,而不是我希望看到的属性值 因此,在尝试数据绑定表达式之后(如下所示)。我没有得到看起来很糟糕

我有一个属性为Title的自定义服务器控件。使用控件时,我希望在aspx页面中设置标题的值,如下所示:

<cc1:customControl runat="server" Title='<%= PagePropertyValue%>' >
more content
</cc1:customControl>

更多内容
但是,当我这样做时,我得到的是显示的确切字符串,而不是我希望看到的属性值

因此,在尝试数据绑定表达式之后(如下所示)。我没有得到看起来很糟糕的字符串文字,但我也没有得到任何其他东西

<cc1:customControl runat="server" Title='<%# PagePropertyValue%>' >
more content
</cc1:customControl>

更多内容

我需要对自定义控件执行什么操作才能获取这种值?或者我需要对页面执行某些操作。

尝试使用数据绑定语法:

你不能。将字符串直接写入响应流,这发生在构造服务器控件之后。请参阅以获取解释


因此,如果要使绑定属性值按照建议正确工作,则其代码隐藏或,您将在aspx或ascx文件中使用:

<cc1:customControl runat="server" Title='<%# PagePropertyValue %>' >
more content
</cc1:customControl>

这样,它将绑定ascx或aspx文件中的数据。

作为我自己问题的后续,我发现我真正想要的是使用 更多内容和控件
这很好。

请注意,这是特定于控件属性的。使用时,会使其显示为空,而不是实际的代码字符串。我没有在我的控件上实现数据绑定事件。我使用两种设置的asp label控件得到了类似的结果。尝试调用label.DataBind(),它应该显示表达式返回的任何内容。
protected void Page_Load(object sender, EventArgs e)
{
    DataBind();
}
<cc1:customControl runat="server" Title='<%$ Resouces: ResourceFile, ContentKey %>' >
more content and controls
</cc1:customControl>