Je suis à la recherche de bonnes pratiques pour appliquer une logique métier afin de former des éléments dans une application ASP.NET MVC. Je suppose que les concepts s'appliqueraient à la plupart des modèles MVC. L'objectif est de faire en sorte que toute la logique métier provienne du même endroit.Application de la logique métier pour former des éléments dans ASP.NET MVC
J'ai une forme de base avec quatre éléments:
Textbox: pour les données entrant dans
Checkbox: pour l'approbation du personnel
Checkbox: pour l'approbation du client
Bouton: pour la présentation sous forme
La zone de texte et deux cases à cocher sont des champs d'une base de données accédée à l'aide de LINQ to SQL. Ce que je veux faire est de mettre la logique autour des cases à cocher sur qui peut les vérifier et quand.
vraie table (peu idiot, mais c'est un exemple):
when checked || may check Staff || may check Client
Staff | Client || Staff | Client || Staff | Client
0 0 || 1 0 0 1
0 1 || 0 0 0 1
1 0 || 1 0 0 1
1 1 || 0 0 0 1
Il y a deux rôles de sécurité, le personnel et le client; Le rôle d'une personne détermine qui elle est, les rôles sont conservés dans la base de données avec l'état actuel des cases à cocher.
je peux simplement stocker les utilisateurs rouler dans la classe d'affichage et activer et désactiver les cases à cocher en fonction de leur rôle, mais cela ne semble pas bon. C'est mettre de la logique dans l'interface utilisateur pour contrôler quelles actions peuvent être prises.
Comment puis-je obtenir la majeure partie de ce contrôle dans le modèle? Je veux dire que j'ai besoin de contrôler les cases à cocher activées, puis vérifier les résultats dans le modèle lorsque le formulaire est posté, il semble donc le meilleur endroit pour cela à l'origine.
Je cherche une bonne approche pour construire ce, quelque chose à suivre comme je construis l'application. Si vous connaissez de bonnes références qui expliquent ces bonnes pratiques, c'est aussi très apprécié.
C'est beaucoup de logique liée dans l'interface utilisateur, complètement déconnecté de la logique du modèle. Je suis entièrement d'accord que vous voulez guider l'utilisateur autant que possible pour faire les bonnes sélections. Comme vous l'avez dit, les messages peuvent être malformés dans tous les sens, donc toutes les valeurs doivent être vérifiées par rapport à votre logique métier. – Brettski
Eh bien, oui. Vous pouvez aller plus loin et configurer vos règles dans le ViewModel, en générant le javascript à partir de ces règles, mais vous devez équilibrer le temps de développement et le temps de maintenance. Cela va dépendre de la probabilité de changement, ce qui est généralement une supposition. Je suggère d'appliquer la ligne directrice «Prenez la balle une fois», c.-à-d. prenez la route la plus facile et si vous trouvez un problème plus tard, repensez-la. – pdr