Search code examples
.netasp.net-mvcasp.net-mvc-2html-helperhtml.hiddenfor

What does Html.HiddenFor do?


Although I have read the documentation on Html.HiddenFor, I've not grasped what is it used for...

Could somebody explain its uses and give a short example?

Where should those helpers go in the code?


Solution

  • It creates a hidden input on the form for the field (from your model) that you pass it.

    It is useful for fields in your Model/ViewModel that you need to persist on the page and have passed back when another call is made but shouldn't be seen by the user.

    Consider the following ViewModel class:

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

    Now you want the edit page to store the ID but have it not be seen:

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

    This results in the equivalent of the following HTML:

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