title: Why do we no longer need to manually validate models in higher versions of ASP.NET Core?
body: <p>All my models are automatically validated before hitting the endpoint, and return appropriate errors if some form of validation has failed.</p>
  
  <p>I remember back in ASP.NET Core 2.2 we needed to manually call <code>ModelState.IsValid</code> to make sure an object has passed validation checks, but with the latest ASP.NET Core 3.0, this doesn't seem to be the case, and nowhere am I including/configuring any services explicitly for this behavior to exist.</p>
  
  <p>Could someone shine some light on the matter, and perhaps link a relevant source where they mention this change?</p>
  
  <p><strong>EDIT:</strong> Is it due to the <code>[ApiController]</code> attribute? See: <a href="https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-3.1#automatic-http-400-responses" rel="noreferrer">https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-3.1#automatic-http-400-responses</a></p>
  
  <p>Thank you!</p>