Utilidade
O controle HiddenField é muito útil quando desejamos passar informações para serem recuperadas
futuramente por outros processos.
Citando um exemplo, o fechamento de um carrinho de compras eu posso passar num hiddenfield a
quantidade desse produto no estoque ( um limite ) e se no fechamento do carrinho de compras
o usuário selecionar mais que esse limite eu posso restringir informando que no estoque só
temos x peças para a venda sem ter que ir no servidor e fazer uma consulta no estoque novamente.
Exemplo1 de HiddenField : Isto está antes do HiddenField
e Isto está depois do HiddenField.
Exemplo2 de HiddenField - Visible=false: Isto está antes do HiddenField
e Isto está
depois do HiddenField.
Você pode notar acima que as mensagens 'Isto está antes do HiddenField' e
'e Isto está depois do HiddenField.' estão juntas porque o campo HiddenField não foi exibido
mas está lá.
Dentro do HiddenField temos um parâmetro chamado Value onde podemos armazenar o valor que queremos
passar para o processo futuro.
Neste controle temos os eventos onclick e outros mas se ele foi feito para ser um campo
escondido como que o usuário vai saber que é para clicar nele?
Outro ponto bom é que o conteúdo do campo HiddenField é criptografado pelo ViewState. Se você
exibir o fonte da página vai ver a seguinte informação :
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMTE3MzQzMDI5ZGQH+pFu2Fo3tN31vO39bXRRGf94YMHUbefudzmTua1hzQ==" />
</div>
Contudo sabemos que o viewstate é o controle asp net que mantém as informações de uma página
para outra num submit, por exemplo. Se havia um campo texto numa página e você deu submit nela,
o valor digitado no campo texto fica armazenado pelo viewstate e num reload da página o conteúdo
do campo digitado pelo usuário seria mantido graças ao valor do ViewState.
Contudo a finalidade do ViewState não é criptografar a informação mas sim mantê-la de uma
página para outra. Digamos que ele criptografa mas não é a maneira mais segura de fazer isso.