MVC Validation des plus faibles ou Plus élevées que les autres de la valeur
Comment est la meilleure façon de valider un modèle dans MVC.Net là où je veux accepter un minimum/maximum.
Pas individuelle valeurs min/max pour un champ. Mais des champs séparés pour un utilisateur de spécifier une durée minimale/maximale.
public class FinanceModel{
public int MinimumCost {get;set;}
public int MaximumCost {get;set;}
}
J'ai donc besoin de s'assurer que MinimumCost est toujours inférieur au coût Maximum.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser une validation personnalisée attribut voici mon exemple avec les dates.
Mais vous pouvez l'utiliser avec ints trop.
Tout d'abord, voici le modèle :
Et ici, c'est l'attribut lui-même :
jQuery.validator.addMethod('isdateafter', function (value, element, params) { if (!/Invalid|NaN/.test(new Date(value))) { return new Date(value) > new Date(); } return isNaN(value) && isNaN($(params).val()) || (parseFloat(value) > parseFloat($(params).val())); }, ''); jQuery.validator.unobtrusive.adapters.add('isdateafter', {}, function (options) { options.rules['isdateafter'] = true; options.messages['isdateafter'] = options.message; });
if (this.allowEqualDates && value == propertyTestedValue)
. Cela fonctionne:if (this.allowEqualDates && value.Equals(propertyTestedValue))
ou même ceif (this.allowEqualDates && (DateTime)value == (DateTime)propertyTestedValue)
.Il y a un package NuGet appelé À toute épreuve qui fournit ces annotations pour vous. Que dit - rédaction d'un attribut personnalisé est à la fois très facile et de bonnes pratiques.
À l'aide à toute épreuve ressemblerait à:
Pour la validation côté client à l'aide de la allowEqualDates et propertyTested paramètres (complément à Boranas réponse ci-dessus, mais trop long pour un commentaire:
Plus d'informations: discrète validation, jquery de validation
En VB pour les entiers:
MODÈLE
VALIDATION
Pourquoi vous ne sont pas utilisées Gamme Validateur.
Syntaxe: