title: Not receiving ModelState error when ommitting int property
body: <p>I found some functionality in MVC4 that confuses me. I have the following model and controller action:</p>
  
  <pre><code>public class MyModel
  {
      public int Foo { get; set; }
  }
  
  public ActionResult MyAction(MyModel model)
  {
      // check ModelState.IsValid and do stuff
  }
  </code></pre>
  
  <p>The issue I'm running into is that if I do a GET request to MyAction and don't pass in any parameters then ModelState.IsValid is true. If I pass in Foo as a param with an empty string as the value then the ModelState.IsValid is false as expected (with the error message that Foo is required).</p>
  
  <p>So I guess my question is why is ModelState.IsValid true when Foo is ommitted? Is this a bug in MVC or am I just missing something? If a property is required it seems like there should be a ModelState error when that property is ommitted.</p>
  
  <p>Just for kicks I tried changing Foo to a string and added the [Required] attribute to it. When I did this both of the above tests returned false for ModelState.IsValid which is what I would expect it to do for a non-nullable int property as well. After this test I changed Foo back to an int and left the [Required] attribute to see if that had any effect. Still got the same results as when it was an int without the [Required] attribute.</p>