Tengo un control de la tela que se ve asíusando <%= %> o <%# %> con runat = server en ASP.NET
public class Foo : WebControl { [Bindable(true)] [Category("Default")] [DefaultValue("")] [Localizable(true)] public string Bar { get; set; } protected override void Render(HtmlTextWriter output) { output.WriteLine(Bar); } }
Quiero poner esto de webcontrol en mi página aspx, así:
<cc1:Foo Bar="<%= Fa.La.La %>/otherstuff" runat="server" />
(obviamente este código se simplifica para mostrar el problema)
En mi método Render, la variable Fa.La.La no se evalúa. Viene como texto sin formato "<% = Fa.La.La%>" ¿Cómo lo evalúo?
No soy particular cómo se pasan las variables. Si las variables se pueden evaluar si se pasan como <% # ...%>, eso funciona bien. El punto es que tengo algunas variables del lado del servidor que quiero evaluar antes/mientras se llama a mi método Render().
Lo único que se me ocurre es usar una expresión regular para capturar los contenidos de <% = ...%> y usar la reflexión o algo así, pero tiene que haber una forma más elegante de hacerlo.
Esta pregunta es bastante similar a using server variables in a href <%= xx %> with runat=server, pero no es exactamente la misma ya que ninguna de las respuestas fue útil.
Trate de usar este NOTA comilla simple y doble comilla diferencia. Espero que pueda resolver el problema –
Moons