111 votes

Ce n'Html.HiddenFor faire?

Bien que j'ai lu de la documentation sur Html.HiddenFor, je n'ai pas compris à quoi sert-il...

Quelqu'un pourrait expliquer ses usages et de donner un court exemple?

Où dois-ces aides aller dans le code?

118voto

Justin Niessner Points 144953

Crée un caché d'entrée sur le formulaire pour le domaine (à partir de votre modèle) que vous transmettez.

Il est utile pour les champs dans votre Modèle/ViewModel que vous avez besoin de persister sur la page du passé lorsqu'un autre appel est lancé mais ne devrait pas être modifié, vu par l'utilisateur.

Considérez les points suivants ViewModel de la classe:

public class ViewModel
{
    public string Value { get; set; }
    public int Id { get; set; }
}

Maintenant, vous voulez modifier la page pour stocker l'ID, mais ont-il pas être modifiable vu:

<% using(Html.BeginForm() { %>
    <%= Html.HiddenFor(model.Id) %><br />
    <%= Html.TextBoxFor(model.Value) %>
<% } %>

Qui résultats dans l'équivalent du code HTML suivant:

<form name="form1">
    <input type="hidden" name="Id">2</input>
    <input type="text" name="Value" value="Some Text" />
</form>

8voto

James Still Points 39

Et de consommer de l'caché ID avis sur la modification de la méthode d'action:

[HttpPost]
public ActionResult Edit(FormCollection collection)
{
    ViewModel.ID = Convert.ToInt32(collection["ID"]);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X