私はこのようなWebコントロールを持っています
パブリッククラスFoo:WebControl {{ [Bindable(true)] [Category( "Default")] [DefaultValue( "")] [ローカライズ可能(true)] public string Bar {get; セットする; } 保護されたオーバーライドvoidRender(HtmlTextWriter output) {{ output.WriteLine(Bar); } }
このWebコントロールを次のようにaspxページに配置したいと思います。
<cc1:Foo Bar = "<%= Fa.La.La%> / otherstuff" runat = "server" />
(明らかに、このコードは問題を示すために簡略化されています)
私のRenderメソッドでは、変数Fa.La.Laは評価されません。生のテキスト「<%= Fa.La.La%>」として届きます。どうすれば評価できますか?
変数がどのように渡されるかは特にわかりません。変数が<%#...%>として渡された場合に変数を評価できる場合は、正常に機能します。重要なのは、Render()メソッドが呼び出される前/呼び出されている間に評価したいサーバー側の変数がいくつかあるということです。
私が考えることができる唯一のことは、正規表現を使用して<%= ...%>のコンテンツを取得し、リフレクションなどを使用することですが、これを行うには、よりエレガントな方法が必要です。
この質問は、href <%= xx%>でrunat = serverを使用してサーバー変数を使用するのと非常によく似ていますが、有用な回答がなかったため、まったく同じではありません。