J'ai un modèle avec BEAUCOUP de clés étrangères. En ce moment, je remplis les données d'affichage:Comment gérer un modèle avec beaucoup de listes déroulantes dans Asp.net mvc
ViewData["fieldname"]=new selectlist(entityframeworkmodel.foreigntable.ToList(),"fieldkey","valuefield");
Je n'aime vraiment pas cette approche. D'une part, je suis supposé nommer simplement le champ la même chose et croire qu'il sera stocké dans le modèle. Je ne comprends pas vraiment comment cela fonctionne mais c'est un peu inquiétant. Deuxièmement, mon code est maintenant un peu en désordre.
//Address drop downs
ViewData["AddressType"] = new SelectList(ent.tblAddressTypes.ToList(), "AddressID", "AddressType");
//Contact Drop Downs
ViewData["ContactTitle"] = new SelectList(ent.tblContactTitles.ToList(), "ContactTitleID", "Title");
//Event
ViewData["EventStatus"] = new SelectList(ent.tblEventStatus.ToList(), "EventStatusID", "EventStatus");
ViewData["EventType"] = new SelectList(ent.tblEventTypes.ToList(), "EventTypeID", "EventType");
ViewData["Frequency"] = new SelectList(ent.tblFrequencies.ToList(), "FrequencyID", "Frequency");
ViewData["cLanguage"] = new SelectList(ent.tblLanguages.ToList(), "LanguageID", "Language");
ViewData["PrimaryAgeGroup"] = new SelectList(ent.tblAgeGroupSet.ToList(), "AgeGroupID", "AgeGroup");
ViewData["PrimaryEntity"] = new SelectList(ent.tblEntities.ToList(), "EntityID", "Entity");
ViewData["PrimaryEthnicGroup"] = new SelectList(ent.tblEthnicTargets.ToList(), "EthnicTargetID", "EthnicTarget");
ViewData["PrimaryLanguage"] = new SelectList(ent.tblLanguages.ToList(), "LanguageID", "Language");
ViewData["TargetGroup"] = new SelectList(ent.tblTargetGroups.ToList(), "TargetGroupID", "TargetGroup");
ViewData["TargetFocus"] = new SelectList(ent.tblTargetGroups.ToList(), "TargetGroupID", "TargetGroup");
ViewData["PrimaryUserGroup"] = new SelectList(ent.tblUserGroups.ToList(), "UserGroupID", "UserGroup");
ViewData["PrimaryTargetGroup"] = new SelectList(ent.tblTargetGroups.ToList(), "TargetGroupID", "TargetGroup");
ViewData["OS"] = new SelectList(ent.tblOutreachSpecialists.ToList(), "OSID", "LastName");'
L'autre problème est que je ne vois pas comment je peux le tester. J'ai écrit une méthode de référentiel qui ne fait que mapper les valeurs id des listes déroulantes dans les objets EF respectifs.
Comment sont traitées les autres personnes? J'ai mis en place ces listes déroulantes dans quelques endroits, donc j'ai pensé à les mettre dans une méthode de contrôleur.
Pensées?
P.S. Type de réflexion à ce sujet: http://weblogs.asp.net/scottgu/archive/2007/12/06/asp-net-mvc-framework-part-3-passing-viewdata-from-controllers-to-views.aspx