Bonjour,
Je suis différents tutoriels sur le web concernant ASP.Net MVC.
En parallèle, je me suis fait un petit projet juste pour mettre cela en pratique.
Ce petit projet serait de gérer des personnages de jeux de rôle.
Donc un personnage possède différentes propriétés propres (race, nom, classe,.....).
Maintenant, la ou cela se complique c'est concernant les compétences.
Une compétence possède: un nom, un descriptif,..
En base de données, cela nous donne 3 tables:
Joueur(idJoueur (Identity), nom,....)
Competence(idCompetence (identity), nom, descriptif,.....)
CompetenceJoueur( idJoueur, idCompetence)
La table CompetenceJoueur ne sert qu'a faire une liaison entre un joueur et une compétence. Bien entendu, un même joueur ne peut pas avoir 2 fois la même compétence, donc {IdCompetence, IdJoueur} est la clé primaire de cette table.
Lorsque je créer un joueur, certes je remplis ces propriétés propres, mais pour les compétences je ne sais pas comment gérer le nombre variable de compétences.
Un joueur peut en avoir 0 alors qu'un autre peut en avoir 5. C'est uniquement lorsque je valide le formulaire, via submit, que je crée tout en DB (enregistrement dans la table Joueur + enregistrements dans la table CompetenceJoueur).
D'accord, je passe un ViewModel à ma vue pour qu'elle puisse avoir la collection des compétences qu'elle mettra dans une liste de choix, mais comment faites vous pour pouvoir afficher une nouvelle compétence à un joueur sans faire de Submit? Un peu comme on le ferait dans une grille Winforms, ou on aurait un bouton + (ajouter ligne competence).
Je suppose que cela devrait plutôt se faire coté client (il n'y a pas besoin de contacter le serveur pour cela), donc dans du script, mais vous faite cela comment? Avec une vue partielle? autre chose?
L'idée serait la même dans le cas d'une édition de joueur, dans le cas ou je me serais rendu compte que j'avais oublié de lui attribuer une compétence ou qu'il en aurait acquis une nouvelle grâce à ses différents faits d'armes.
Je suis preneur de tout exemple, parce que les tutos que je suis sont plutôt simplistes de ce point de vue.
Merci d'avance.
Partager