Lier un simple menu déroulant à une liste dans MVC
-
05-07-2019 - |
Question
J'essaie de lier une liste déroulante dans ASP.NET MVC à une classe. Heureusement pour moi, ce sera un nombre compris entre 1 et 10, mais je ne reçois pas la sortie dans mon code HTML comme je l’attendrais. J'ai défini à la fois les propriétés value et text qui sont renseignées correctement dans la vue, mais la valeur sélectionnée refuse de s'afficher. Ceci est dans la méthode d'édition initiale de mon contrôleur. Des idées?
Dim SC As SuperCategory = Model.Fast.Pull(DB.SuperCategory, ID)
Dim list As New List(Of SelectListItem)
list.Add(New SelectListItem With {.Value = 1, .Text = "1", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 2, .Text = "2", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 3, .Text = "3", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 4, .Text = "4", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 5, .Text = "5", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 6, .Text = "6", .Selected = True})
list.Add(New SelectListItem With {.Value = 7, .Text = "7", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 8, .Text = "8", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 9, .Text = "9", .Selected = (.Value = SC.Sort)})
list.Add(New SelectListItem With {.Value = 10, .Text = "10", .Selected = (.Value = SC.Sort)})
ViewData("Sort") = list
Le code HTML dans la vue ressemble à ceci:
Trier: <% = Html.DropDownList (& "Trier &"; CType (ViewData (& "Trier &";)), IEnumerable (Of SelectListItem))% gt;
La solution
Si ViewData["Sort"]
implémente IEnumerable<SelectListItem>
, le second paramètre n'est pas nécessaire. Avez-vous essayé ceci:
<%= Html.DropDownList("Sort") %>