title: @Html.ValidationMessageFor displays error message before user input
body: <p>I have the following code:</p>
  
  <p>In the model:</p>
  
  <pre><code>public class Student {
  
  [Required(ErrorMessage = "name is a required field")]
  public string Name { get; set; }
  
  [Required(ErrorMessage = "school is a required field")]
  public string School { get; set; }
  
  }
  </code></pre>
  
  <p>In the controller:</p>
  
  <pre><code>public ActionResult StudentView()
  {
  return View();
  }
  
  [HttpPost]
  public ActionResult StudentViewPost(Student model)
  {
  if(ModelState.IsValid)
  {
  ....
  ....
  }
  }
  </code></pre>
  
  <p>And in my view, i have:</p>
  
  <pre><code>@using (Html.BeginForm()){
  
  @Html.TextBoxFor(model =&gt; model.Name)
  @Html.ValidationMessageFor(model =&gt; model.Name)
  
  @Html.TextBoxFor(model =&gt; model.School)
  @Html.ValidationMessageFor(model =&gt; model.School)
  }
  </code></pre>
  
  <p>But when i go to the view page, the validation error messages are already displayed (on load), even before i get a chance to enter any input. Is there any reason why this could be happening? Could .NET be seeing this GET page as a POST page on load somehow and therefore display the error message? I'm not sure why this is happening and any thoughts/ideas would be great.</p>