Embora eu tenha lido a documentação sobre Html.HiddenFor, não entendi para que é usado ...
Alguém poderia explicar seus usos e dar um pequeno exemplo?
Onde esses auxiliares devem ir no código?
Embora eu tenha lido a documentação sobre Html.HiddenFor, não entendi para que é usado ...
Alguém poderia explicar seus usos e dar um pequeno exemplo?
Onde esses auxiliares devem ir no código?
Ele cria uma entrada oculta no formulário para o campo (do seu modelo) que você passa.
É útil para campos em seu Model / ViewModel que você precisa para persistir na página e que foram devolvidos quando outra chamada é feita, mas não deveriam ser vistos pelo usuário.
Considere a seguinte classe ViewModel:
public class ViewModel
{
public string Value { get; set; }
public int Id { get; set; }
}
Agora você deseja que a página de edição armazene o ID, mas não seja visto:
<% using(Html.BeginForm() { %>
<%= Html.HiddenFor(model.Id) %><br />
<%= Html.TextBoxFor(model.Value) %>
<% } %>
Isso resulta no equivalente ao seguinte HTML:
<form name="form1">
<input type="hidden" name="Id">2</input>
<input type="text" name="Value" value="Some Text" />
</form>
E para consumir a entrada de ID oculta de volta em seu método de ação Editar:
fonte
Como muitas funções, esta pode ser usada de muitas maneiras diferentes para resolver muitos problemas diferentes. Eu penso nela como mais uma ferramenta em nossos cintos de ferramentas.
Até agora, a discussão se concentrou fortemente em simplesmente ocultar um ID, mas esse é apenas um valor, por que não usá-lo para muitos valores! Isso é o que estou fazendo, eu o uso para carregar os valores em uma classe apenas uma visão por vez, porque html.beginform cria um novo objeto e se seu objeto de modelo para essa visão já teve alguns valores passados para ele, aqueles os valores serão perdidos, a menos que você forneça uma referência a esses valores no formulário inicial.
Para ver uma grande motivação para o html.hiddenfor, recomendo que você consulte Passando dados de uma visualização para um controlador em .NET MVC - "@model" sem destaque
fonte
O uso do código Razor @ Html.Hidden ou @ Html.HiddenFor é semelhante ao seguinte código Html
E também consulte o seguinte link
https://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions.hiddenfor(v=vs.118).aspx
fonte