C # (ASP.Net) Vinculación de valores de selección a constantes en Codebehind

Código ASPX

    Developer  dev.test.com
    staging.test.com

ASPX.CS: código subyacente

const string ServerDeveloper = "developer";

ASPX Error: Code blocks are not supported in this context.

Question: So what is the correct way to tie an dropdown/radio buttion/... ASPX value to a constant that is shared with the CodeBehind code?

Sé que podría hacer rbServer.Add.Item ("desarrollador") [del CodeBehind], pero ¿hay alguna manera de lograrlo desde el lado de la Presentación?

4
¿Nos falta algo de información aquí? Por favor arregla el código ASPX!
agregado el autor Torbjørn, fuente

4 Respuestas

Podría ser:

rbServer.Items.Add(ServerDeveloper)

Ok, entonces ya que quieres hacerlo desde la presentación ... Es posible, pero horriblemente feo:

<div>
<% rbServer.Items.Add(new ListItem("Dev", ServerDeveloper)); %>

    Blah

</div>

Tenga en cuenta que el bloque de código tiene que estar arriba del marcado; si lo coloca a continuación, no parece funcionar. Tenga en cuenta también que la const deberá estar protegida para que la página pueda acceder a ella. Esto se siente terriblemente como un truco para mí, pero ahí está.

3
agregado
Estoy de acuerdo que el código en línea es feo. Solo esperaba
agregado el autor Jason V, fuente
Sin embargo, tiene el bonito "detalle" de usar la constante en ambas arenas.
agregado el autor Jason V, fuente

En la mayoría de los casos agrego ListItems a la lista en el código subyacente, no en el marcado. Supongo que eso resolverá tu problema (aunque creo que falta algo de información aquí). Cree nuevos ListItems y agréguelos a la coleccin de rbServer's Items.

0
agregado

En retrospectiva, la mejor solución sería agregarlo desde el código subyacente usando rbServer.Items.Add ()

0
agregado
No estoy de acuerdo, si son valores constantes es más fácil ponerlos en el aspx porque al generar archivos de recursos, se generan automáticamente en el resx. Si los agrega en el código subyacente, tendrá que vincular las entradas de recursos manualmente con GetLocalResoureObject() ...
agregado el autor Peter, fuente

Por lo general, trato de evitar el control de RadioButtonList por la misma razón que ha publicado. Aunque no he encontrado una alternativa fácil de usar :(

0
agregado