我有一个看起来像这样的网络控件
公共类 Foo : WebControl
{
[可绑定(真)]
[类别(“默认”)]
[默认值(””)]
[可本地化(真)]
公共字符串栏 { 获取;放; }
受保护的覆盖无效渲染(HtmlTextWriter 输出)
{
output.WriteLine(Bar);
}
}
我想把这个 webcontrol 放在我的 aspx 页面中,如下所示:
<cc1:Foo Bar="<%= Fa.La.La %>/otherstuff" runat="server" />
(显然这段代码被简化以显示问题)
在我的 Render 方法中,变量 Fa.La.La 没有被评估。它以原始文本“<%= Fa.La.La %>”的形式出现我如何评估它?
我并不特别说明变量是如何传入的。如果变量以 <%# ... %> 的形式传入,则可以对其进行评估,那可以正常工作。关键是我有一些服务器端变量要在调用 Render() 方法之前/期间进行评估。
我唯一能想到的是使用正则表达式来获取 <%= ... %> 的内容并使用反射或其他东西,但必须有一种更优雅的方式来做到这一点。
这个问题与在带有 runat=server 的 href <%= xx %> 中使用服务器变量非常相似,但并不完全相同,因为那里的答案都没有用。