I have a model where I am using DataAnnotations to perform validation, such as
public class OrderDTO
{
[Required]
public int Id { get; set; }
[Required]
public Decimal Amount { get; set; }
}
Then I am checking the ModelState in each request to make sure that the JSON is valid.
However, I am having trouble for number properties such as Amount
above. Even though it is set as [Required]
, if it's not included in the JSON it will skip the ModelState validation because it is automatically defaulted to 0 instead of null
, so the model will seem valid even though it isn't.
An easy way to 'fix' this is to set all the number properties as nullable (int?
, Decimal?
). If I do this, the defaulting to 0 doesn't happen, but I don't like this as a definitive solution as I need to change my model.
Is there a way to set the properties to null
if they are not part of the JSON?