title: I can delete Html.HiddenFor(model=>model.Id) and the app still works. What is it for?
body: <p>If VS creates a strongly-typed view for the <code>[HttpGet] Create</code>, I get markup for the model as follows. </p>
  
  <p><strong>Note that the code has been simplified for the sake of brevity.</strong> The important point is that VS does <strong>NOT</strong> include <code>Html.HiddenFor(model=&gt;model.Id)</code>.</p>
  
  <pre><code>//Create.cshtml
  @model MvcMovie.Models.Movie
  @using (Html.BeginForm())
  {
      @Html.ValidationSummary(true)
      &lt;fieldset&gt;
          &lt;legend&gt;Movie&lt;/legend&gt;
          &lt;div class="editor-label"&gt;
              @Html.LabelFor(model =&gt; model.Title)
          &lt;/div&gt;
          &lt;div class="editor-field"&gt;
              @Html.EditorFor(model =&gt; model.Title)
              @Html.ValidationMessageFor(model =&gt; model.Title)
          &lt;/div&gt;
          &lt;div class="editor-label"&gt;
              @Html.LabelFor(model =&gt; model.ReleaseDate)
          &lt;/div&gt;
          &lt;div class="editor-field"&gt;
              @Html.EditorFor(model =&gt; model.ReleaseDate)
              @Html.ValidationMessageFor(model =&gt; model.ReleaseDate)
          &lt;/div&gt;
          &lt;p&gt;
              &lt;input type="submit" value="Create" /&gt;
          &lt;/p&gt;
      &lt;/fieldset&gt;
  }
  </code></pre>
  
  <hr>
  
  <p>Now I create a templated HTML helper EDITOR named <code>Movie.cshtml</code> for the type <code>Movie</code> as follows.</p>
  
  <p><strong>Note that the code has been simplified for the sake of brevity.</strong> The important point is that VS <strong>DOES</strong> include <code>Html.HiddenFor(model=&gt;model.Id)</code>.</p>
  
  <pre><code>//Movie.cshtml
  @model MvcMovie.Models.Movie
  @Html.HiddenFor(model =&gt; model.Id)
  &lt;div class="editor-label"&gt;
      @Html.LabelFor(model =&gt; model.Title)
  &lt;/div&gt;
  &lt;div class="editor-field"&gt;
      @Html.EditorFor(model =&gt; model.Title)
      @Html.ValidationMessageFor(model =&gt; model.Title)
  &lt;/div&gt;
  &lt;div class="editor-label"&gt;
      @Html.LabelFor(model =&gt; model.ReleaseDate)
  &lt;/div&gt;
  &lt;div class="editor-field"&gt;
      @Html.EditorFor(model =&gt; model.ReleaseDate)
      @Html.ValidationMessageFor(model =&gt; model.ReleaseDate)
  &lt;/div&gt;
  </code></pre>
  
  <p>If I use this templated, I must change <code>Create.cshtml</code> as follows:</p>
  
  <pre><code>//Create.cshtml
  @model MvcMovie.Models.Movie
  @using (Html.BeginForm())
  {
      @Html.ValidationSummary(true)
      &lt;fieldset&gt;
          &lt;legend&gt;Movie&lt;/legend&gt;
          @Html.EditorForModel()
          &lt;p&gt;
              &lt;input type="submit" value="Create" /&gt;
          &lt;/p&gt;
      &lt;/fieldset&gt;
  }
  </code></pre>
  
  <hr>
  
  <p>The questions are:</p>
  
  <ol>
  <li>Since the hidden field form can be deleted without any side effect, in this case, what is the hidden field for?</li>
  </ol>