0
votes

Essayer de lier deux différentes déposées déroulantes à l'aide de ViewData

Essayer de lier deux liste déroulante du contrôleur à afficher dans l'étape ci-dessous, mais obtenir l'erreur:

"Impossible de lancer l'objet de type "System.Collections.Generic.List 1 [SMART.MODELS.SHIFTT_DETAILLS]" Pour taper 'System.Collections.Generic.Inédiricere code> 1 [System.web.mvc.selectLisTiTem] "." P > blockQuote>

aucune idée de la façon de la résoudre sera appréciée. p>

Classe de modèle: P>

@Html.DropDownList("SelectedEmployee",new SelectList((IEnumerable<SelectListItem>) ViewData["shift_details"]), "ShiftId", "ShiftVal")
@Html.DropDownList("SelectedEmploe", new SelectList((IEnumerable<SelectListItem>)ViewData["Flag_details"]), "FlagId", "FlagVal")


0 commentaires

3 Réponses :


0
votes

Si vous utilisez ViewData ​​code>, vous n'aurez pas besoin @ html.dropdownlist code>. Utilisez sélectionneuse code> xxx pré>

dans le contrôleur p>

ViewData["shift_details"] = new SelectList(GetShift_details(), "ShiftId", "ShiftVal");


1 commentaires

Mais la valeur n'est pas contraignante dans la liste déroulante et est ASP-for et ASP-Etats peut être utilisée dans la syntaxe de rasoir MVC.



0
votes

Je préfère créer le code> sélectionnez code> dans le contrôleur. Exemple ci-dessous.

            <select asp-for="ShiftId" class ="form-control" asp-items="ViewBag.shift_details">
            </select>
            <select asp-for="FlagId" class ="form-control" asp-items="ViewBag.Flag_details">
            </select>


1 commentaires

Mais la valeur n'est pas contraignante dans la liste déroulante et est ASP-for et ASP-Etats peut être utilisée dans la syntaxe de rasoir de la vue MVC.



0
votes

Pour résoudre votre erreur. Modifiez les types de retour de vos méthodes privées de retour des listes de retour pour renvoyer un type iEnumerable correspondant plutôt

iNeumable privé getShift_Details () {... retour shift_detail.toarray (); }


0 commentaires