J'ai actuellement un formulaire que je suis en train de construire qui doit prendre en charge deux versions différentes. Chaque version peut utiliser un sous-ensemble différent de champs de formulaire. Je dois faire ceci pour soutenir deux clients différents, mais je ne veux pas avoir des actions de contrôleur entièrement différentes pour les deux. Donc, j'essaie de trouver un moyen d'utiliser un modèle fortement typé avec des attributs de validation, mais certains de ces attributs sont conditionnels.Comment puis-je prendre en charge la validation conditionnelle des propriétés du modèle?
Certaines approches auxquelles je peux penser sont similaires à l'approche partial validation de steve sanderson.
Où je voudrais effacer les erreurs de modèle dans un filtre OnActionExecuting basé sur quelle version du formulaire était active.
L'autre approche que je pensais serait de briser le modèle en morceaux en utilisant quelque chose comme
class FormModel
{
public Form1 Form1Model {get; set;}
public Form2 FormModel {get; set;}
}
puis trouver un moyen de valider simplement la propriété appropriée en fonction de la version. Il y aurait aussi des propriétés communes sur le modèle qui s'appliquent aux deux qui seraient toujours validées.
Est-ce que quelqu'un a une bonne suggestion à ce sujet?
J'aime cette idée Simon. Je testerai. – Jeff
@jeff Je n'ai pas aimé au début - donc je suis content que vous le fassiez déjà. fonctionne très bien pour les tâches simples que je mets à –