title: String is empty but ModelState is still valid with various annotations to make it invalid
body: <p>Using .NET core 2.1 I tried various DataAnnotations on my Model but everything's still valid when my Title property is an empty string. I tried them all independently from each other as well...</p>
  
  <pre><code>public class TestDto
  {
      public int Id { get; set; }
  
      [Required(AllowEmptyStrings = false)]
      [DisplayFormat(ConvertEmptyStringToNull = true)]
      [StringLength(200, MinimumLength = 10, ErrorMessage = "200 Characters is the maximum allowed for requirements.")]
      public string Title { get; set; }
  }
  </code></pre>
  
  <p>Here's my controller:</p>
  
  <pre><code>[HttpPost]
  [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
  public Task&lt;IActionResult&gt; PostAsync([FromBody] List&lt;TestDto&gt; testModelList)
  {
      if (ModelState.IsValid)
      {
          foreach (TestDto testModel in testModelList)
          {
              //do things
              return Ok();
          }
      }else{
          return BadRequest("ModelState invalid");
      }
  }
  </code></pre>
  
  <p>I even tried creating an own annotation for my "Title" property: </p>
  
  <pre><code>public class EnsureNotEmptyAttribute : ValidationAttribute
  {
      public override bool IsValid(object value)
      {
          var stringToTest = value as String;
          if (!string.IsNullOrEmpty(stringToTest))
          {
              return true;
          }
          return false;
      }
  }
  </code></pre>
  
  <p>Which didn't work either. What can possibly cause that? It's simply ignoring my annotations. When Title is null, the ModelState is invalid, but I need the ModelState to be invalid for empty strings too.</p>