Atsortingbut de validation Int ou Number DataType for DataAnnotation

Sur mon projet MVC3, je stocke la prédiction des scores pour le football / football / hockey / … jeu de sport. Donc, une des propriétés de ma classe de prédiction ressemble à ceci:

[Range(0, 15, ErrorMessage = "Can only be between 0 .. 15")] [SsortingngLength(2, ErrorMessage = "Max 2 digits")] [Remote("PredictionOK", "Predict", ErrorMessage = "Prediction can only be a number in range 0 .. 15")] public int? HomeTeamPrediction { get; set; } 

Maintenant, j’ai aussi besoin de changer le message d’erreur pour un type de données, int dans mon cas. Il y en a un par défaut – “Le champ HomeTeamPrediction doit être un nombre.”. Besoin de trouver un moyen de modifier ce message d’erreur. Ce message de validation semble également prendre une prédiction pour la validation à distance.

J’ai essayé l’atsortingbut [DataType] mais cela ne semble pas être un nombre simple dans l’énumération system.componentmodel.dataannotations.datatype .

    Pour toute validation de numéro, vous devez utiliser différentes validations de gammes selon vos besoins:

    Pour entier

     [Range(0, int.MaxValue, ErrorMessage = "Please enter valid integer Number")] 

    pour float

     [Range(0, float.MaxValue, ErrorMessage = "Please enter valid float Number")] 

    pour double

     [Range(0, double.MaxValue, ErrorMessage = "Please enter valid doubleNumber")] 

    Essayez une expression régulière

     [RegularExpression("([0-9]+)")] // for 0-inf or [RegularExpression("([1-9][0-9]*)"] // for 1-inf 

    j’espère que ça aide: D

    Utiliser l’expression régulière dans les annotations de données

     [RegularExpression("([0-9]+)", ErrorMessage = "Please enter valid Number")] public int MaxJsonLength { get; set; } 

    Essayez cet atsortingbut:

     public class NumericAtsortingbute : ValidationAtsortingbute, IClientValidatable { public override bool IsValid(object value) { return value.ToSsortingng().All(c => (c >= '0' && c <= '9') || c == '-' || c == ' '); } public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { var rule = new ModelClientValidationRule { ErrorMessage = FormatErrorMessage(metadata.DisplayName), ValidationType = "numeric" }; yield return rule; } } 

    Et vous devez également enregistrer l’atsortingbut dans le plug-in du validateur:

     if($.validator){ $.validator.unobtrusive.adapters.add( 'numeric', [], function (options) { options.rules['numeric'] = options.params; options.messages['numeric'] = options.message; } ); } 
     public class IsNumericAtsortingbute : ValidationAtsortingbute { protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value != null) { decimal val; var isNumeric = decimal.TryParse(value.ToSsortingng(), out val); if (!isNumeric) { return new ValidationResult("Must be numeric"); } } return ValidationResult.Success; } }