Je suis en train de me familiariser avec les attributs de validation personnalisés, et j'essaye d'écrire un attirbute de validation personnalisé qui sera placé au niveau de la classe pour valider par rapport à plusieurs propriétés de mon modèle.Comment définir plusieurs messages d'erreur pour différents scénarios dans un attribut de validation personnalisé?
Je peux accéder à toutes les propriétés de mon modèle, et je veux être capable de vérifier plusieurs conditions dans ma surcharge IsValid, et de les rapporter, en ayant différents messages d'erreur comme suit (exemple simpliste).
public override bool IsValid(object value)
{
var model = (MyObject) value;
//if this value is set, I don't want to do anything other checks
if (model.Prop3)
{
return true;
}
if (model.Prop1 == "blah" && model.Prop2 == 1)
{
ErrorMessage = "you can't enter blah if prop 2 equals 1";
return false;
}
if(model.Prop1 == "blah blah" && model.Prop2 == 2)
{
ErrorMessage = "you can't enter blah blah if prop 2 equals 2";
return false;
}
return true;
}
Mais quand je fais ce que je reçois une exception sur la première fois ErrorMessage est référencé « Impossible de définir la propriété plus d'une fois.
Maintenant, je pouvais partager mon attribut personnalisé en plusieurs attributs personnalisés, mais il espère il y aurait une façon de le faire en un seul, sinon, je vais répéter mon « fourre-tout » dans chaque
//if this value is set, I don't want to do anything other checks
if (model.Prop3)
{
return true;
}
J'ai eu une recherche déjà, mais n'a pas pu trouver quoi que ce soit, donc mes excuses si Il me manque quelque chose d'évident:
merci d'avance!