Ho un controllo web che assomiglia a questoutilizzando <%= %> o <%# %> con runat = server 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); } }
voglio mettere questo WebControl nella mia pagina aspx in questo modo:
<cc1:Foo Bar="<%= Fa.La.La %>/otherstuff" runat="server" />
(ovviamente questo codice è semplificato per mostrare il problema)
Nel mio metodo Render la variabile Fa.La.La non viene valutata. Arriva come testo "<% = Fa.La.La%>" Come posso valutarlo?
Non sono particolare di come vengono passate le variabili. Se le variabili possono essere valutate se vengono passate come <% # ...%, ciò funziona correttamente. Il punto è che ho alcune variabili lato server che voglio valutare prima/mentre viene chiamato il mio metodo Render().
L'unica cosa che mi viene in mente è quello di utilizzare una regex per afferrare il contenuto di <% = ...%> e l'uso di riflessione o qualcosa del genere, ma ci deve essere un modo più elegante per fare questo.
Questa domanda è molto simile a using server variables in a href <%= xx %> with runat=server, ma non è esattamente la stessa poiché nessuna delle risposte era utile.
Provare a utilizzare questo Nota citazione singola e doppia citazione differenza. Spero che possa risolvere il problema –
Moons