web-dev-qa-db-fra.com

Attribut obligatoire pour une valeur entière

J'ai un modèle de vue avec une propriété Id

[Required]
public int Id { get; set; }

Mais je pense que cet attribut ne fonctionne que pour les propriétés de chaîne.

Lorsqu'aucun Id n'est défini, Id a la valeur 0 et le modèle est valide.

Comment puis-je faire en sorte que si aucune valeur pour une propriété int n'est définie, le modèle sera invalide?

57
user256034

Changez le type en Nullable<int> (raccourci int?) pour autoriser les valeurs null.

45
Julien Lebosquain

Utilisez l'attribut Range.

Définissez le minimum sur 1 et le maximum sur int.MaxValue

[Range(1, int.MaxValue, ErrorMessage = "Value for {0} must be between {1} and {2}.")]
76
Lee Smith