0

I'm having a RESTful service done with C# ASP.NET. On my models, I'm using the DataAnnotations' RequiredAttribute (from System.ComponentModel.DataAnnotation). When I'm sending an input model with missing properties (via Swagger or Postman), I get double $"{property} is required" messages, although I only have one [Required] attribute on each property. I thought maybe it comes from inheritance in my models (I sometimes also have three-level hierarchies and no triple messages, so I think this is not the problem) or from registering the validations double somehow (but where are they registered?). For example, this is one parent:

public class CertificatePayload : AchievementBase
{
    public string ExternalLink { get; set; }
}

and this one child class:

public class AchievementBase
{
    [Required]
    public string GrantedTo { get; set; }
    [Required]
    public string GrantedBy { get; set; }
 }

Any ideas about what I could check or what could be the problem?

seawave_23
  • 1,169
  • 2
  • 12
  • 23

1 Answers1

1

Since there came no answer... A colleague of mine solved the problem with a trick: deleting the required attributes and adding the IValidatable interface to the object with a validate method showed that the validate method was called twice. Stacktrace was the same both times. The right search words found the solution in the end: StackOverflow-ASP.NET WEB API 2 - ModelBinding Firing twice per request

I had to rebind the ModelValidatorProvider. I applied it to where I had bound my Entities.

Community
  • 1
  • 1
seawave_23
  • 1,169
  • 2
  • 12
  • 23