Définition des valeurs sélectionnées dans le razor MVC5 Html.DropDownListFor
avec les valeurs du tableau
Travailler avec les tableaux et @Html.DropDownListFor()
dans ASP.NET MVC 5 pour sélectionner les valeurs peut être délicat. Voici deux approches pour surmonter ce défi:
Méthode 1: Tiration d'EditorTemplates
Cette méthode implique la création d'un éditormplate dédié pour le type de données de la collection. Le SelectList
est ensuite transmis à l'EditorTemplate en tant que ViewData supplémentaire.
<code class="language-csharp">// AggregationLevelConfiguration.cshtml (EditorTemplate) @Html.DropDownListFor(m => m.HelperCodeType, (SelectList)ViewData["CodeTypeItems"]) // Main View @Html.EditorFor(m => m.Configurations, new { CodeTypeItems = Model.CodeTypeItems })</code>
Cette approche sépare proprement la logique déroulante de la vue principale, améliorant la maintenabilité.
Méthode 2: Génération dynamique de selectlist
Alternativement, vous pouvez remplacer les propriétés IEnumerable
par IEnumerable<GenericIdNameType>
(remplacer GenericIdNameType
par votre type réel). Ensuite, parcourez le tableau dans votre vue principale, créant un nouveau SelectList
pour chaque élément et définit la valeur sélectionnée en conséquence.
<code class="language-csharp">// Main View @for (int i = 0; i < Model.Configurations.Count(); i++) { @Html.DropDownListFor(m => m.Configurations[i].HelperCodeType, new SelectList(Model.CodeTypeItems, "Id", "Name", Model.Configurations[i].HelperCodeType)) }</code>
Cette méthode est plus directe mais peut devenir moins gérable avec des tableaux plus grands. Envisagez d'utiliser une méthode d'assistance pour résumer la création SelectList
pour une meilleure lisibilité si vous choisissez cette approche. N'oubliez pas de régler "Id"
et "Name"
pour correspondre à vos propriétés réelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!