2011-12-09 13 views

Respuesta

15

El campo oculto generar <input type="hidden" /> elemento de la página, que no puede ser visto, pero el cliente puede obtener el elemento, establecer los datos y pasar al servidor:

document.getElementById('<%= SomeHiddenField.ClientID %>').value = "data_pass_to_server"; 

después de la devolución de datos se puede obtener el valor:

var clientData = SomeHiddenField.Value; // "data_pass_to_server" 

Si está utilizando cuadro de texto invisible (<asp:TextBox Visible="False" />), no hay ningún elemento generado en el archivo html.

4

Un campo oculto se representa como tipo de entrada = "oculto" en el HTML resultante. Al ser una entrada, el valor en la entrada se envía al servidor en la devolución de datos, mientras que este no es el caso con una etiqueta. Dependiendo de si desea o no que ese valor se envíe al servidor, debe usar la entrada o la etiqueta. Si no desea que se envíe el valor, la etiqueta es la solución correcta y el campo oculto es incorrecto.

No estoy seguro de lo que quiere decir con un cuadro de texto invisible, pero si intenta hacerlo invisible mediante CSS, tenga en cuenta que el tipo de entrada tiene un significado semántico para los motores de búsqueda, bots, etc. También en algún momento su HTML podría Ser servido sin CSS o con diferentes CSS y el cuadro de texto se hará visible para el usuario. De lo contrario, no hay diferencias entre el campo oculto y el cuadro de texto invisible ya que ambos representan entradas.

1

Prácticamente puede lograr lo mismo con cualquiera de ellos, pero como quiere un "campo oculto", semánticamente hablando, el campo oculto en ASP.NET es su mejor opción por razones de legibilidad.

5

cualquier manera funciona, cuadro de texto, no utilice .visible="false" uso

yourTextBox.Style.Add("display", "none") 

o

yourTextBox.Style.Add("visibility", "hidden") 
+0

Esto es especialmente útil del código detrás. Gracias – Dave