Je joue avec l'échafaudage qui se trouve dans ASP.NET MVC
J'ai une propriété sur mon modèle de vue pour les pays p> encore, quand je crée un Affichez et spécifiez la vieilleModel, il n'échappe pas une liste déroulante, car je m'y attendais. En fait, il est complètement ignoré. P> J'ai compilé le projet avant de le faire P> J'ai également essayé d'ajouter une propriété comme celle-ci p> http://blog.stevensanderson.com/2011/01/28/mvccaffolding-one-a-many-relationhips/ P> J'utilise le Ajouter une option Affichage em> Vous avez lorsque vous cliquez avec le bouton droit de la souris sur une méthode d'action du contrôleur p> TOUTES IDEES Qu'est-ce qui ne va pas? P> P>
3 Réponses :
Dans mon projet actuel, je suis confronté à ce problème et je n'ai pas trouvé de moyen rapide d'échafauder la liste déroulante d'une relation unique d'une de mes entités.
Ce que j'ai fini par faire était comme ce qui suit: p>
1- Créez la normale addview => Create Way. P>
2- Si j'avais une propriété d'identité dans ma classe modèle, le modèle DEFAUL; T générera quelque chose comme celui-ci pour représenter Cette propriété à mon avis: p> 3- Maintenant, je dois remplacer ce modèle par défaut avec un travail en fonctionnement. J'ai donc écrit ce code dans le Créer code > Méthode: P>
<div class="Post-label">
<div class="editor-label">
@Html.LabelFor(model => model.CityID)
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.CityID, ViewData["CityList"] as SelectList)
@Html.ValidationMessageFor(model => model.CityID)
</div>
</div>
Merci pour la réponse. Je sais comment conduire le code, j'essaie juste de savoir pourquoi l'échafaudage automatique ne fonctionne pas pour ce scénario
Pour avoir la possibilité de choisir un pays avec une liste déroulante, la propriété de votre modèle devrait être la suivante:
avec p> Chaque instance / enregistrement d'une personne est associée à un pays: la relation est définie avec la propriété de navigation via le code et avec le payside pour la base de données.
Le modèle de chargement générera ensuite les méthodes d'édition / Création et des vues à l'aide de: p> Pays public Pays {Obtenir; ensemble; } code> Propriété de navigation utilisée par ef, n'implique pas la base de données em> p>
PAYS PAYS PAYS PAYSIDED {GET; ensemble; } code>
créer la clé étrangère sur la table de la personne em> p>
J'ai remarqué que pour un modèle donné, le code généré par un échafaudage "Créer" lors de la création d'un nouveau contrôleur est différent de celui que si vous cliquez avec le bouton droit de la souris dans un contrôleur existant et dites "Ajouter une vue" et choisissez l'échafaudage "Créer". modèle. Dans le premier cas, étant donné que vous avez les propriétés correctes sur la classe enfant alors ce cas (l'ajout de contrôleur avec l'échafaudage MVC lecture / écriture de lecture / écriture appropriée) générera une @ html.dropdownlist Pour la relation parente, alors que le clic avec le bouton droit de la souris dans la méthode du contrôleur Créera ne pas échafauder la liste déroulante mais créera plutôt un @ html.editororfor pour la relation. p> donc la réponse si vous voulez que le code d'échafaudage Générez la liste déroulante peut être de supprimer et de recréer votre contrôleur si possible, sinon ajoutez manuellement le code approprié. p> p>