Vous pouvez créer votre propre validateur comme ceci:
public class RequiredGreaterThanZero : ValidationAttribute
{
/// <summary>
/// Designed for dropdowns to ensure that a selection is valid and not the dummy "SELECT" entry
/// </summary>
/// <param name="value">The integer value of the selection</param>
/// <returns>True if value is greater than zero</returns>
public override bool IsValid(object value)
{
// return true if value is a non-null number > 0, otherwise return false
int i;
return value != null && int.TryParse(value.ToString(), out i) && i > 0;
}
}
Incluez ensuite ce fichier dans votre modèle et utilisez-le comme attribut comme celui-ci:
[RequiredGreaterThanZero]
[DisplayName("Driver")]
public int DriverID { get; set; }
J'utilise couramment ceci lors de la validation de la liste déroulante. Notez que parce qu'il étend l'attribut de validation, vous pouvez personnaliser le message d'erreur avec un paramètre.
Please enter a value less than or equal to 2147483647
.