2011-06-29 5 views
0

Je passe List<SelectListItem> à la vue via ViewBag. La liste déroulante "Groupes" apparaît mais le libellé "Organisations" et la liste déroulante n'apparaissent pas.liste déroulante ne pas montrer sur vue

Je souhaite afficher un contrôle déroulant vide si le viewbag ne contient aucun groupe/org.

Que se passe-t-il qui ne fait pas apparaître la 2ème étiquette et la liste déroulante?

<div class="editor-label"> 
    @Html.LabelFor(model => model.Group) 
</div> 
@{ 
    var groupList = ViewBag.Group as List<Helpdesk.Models.GroupModel>; 

    if (groupList != null && groupList.Count > 0) 
    { 
     var groupItems = new SelectList(groupList, "ID", "Name"); 

     <div class="dropdown-field"> 
      @Html.DropDownListFor(model => model.Group.ID, @groupItems) 
      @Html.ValidationMessageFor(model => model.Group.ID) 
     </div>       
    } 
    else { <select /> }     
} 
<div class="editor-label"> 
    @Html.LabelFor(model => model.Organization) 
</div> 
@{ 
    var orgList = ViewBag.OrgList as List<Helpdesk.Models.OrganizationsModel>; 

    if (orgList != null && orgList.Count > 0) 
    { 
     var orgItems = new SelectList(orgList, "ID", "Name"); 

     <div class="dropdown-field"> 
      @Html.DropDownListFor(model => model.Organization.ID, @orgItems) 
      @Html.ValidationMessageFor(model => model.Organization.ID) 
     </div> 
    } 
    else { <select /> } 
} 
+0

Pourquoi utiliser l'instruction if if else – Tassadaque

+0

pour vérifier si le viewbag est nul ou s'il ne contient aucun élément – Bahamut

+0

Ajouter un point d'arrêt à la deuxième partie dans la vue Razor et le déboguer. Vérifiez également le code HTML résultant en tant que source, peut-être que le navigateur n'aime pas un élément de sélection à fermeture automatique sans contenu. –

Répondre

0

Pourquoi ne pas faire ceci:

if (orgList != null && orgList.Count > 0) 
{ 
    var orgItems = new SelectList(orgList, "ID", "Name"); 

    <div class="dropdown-field"> 
     @Html.DropDownListFor(model => model.Organization.ID, @orgItems) 
     @Html.ValidationMessageFor(model => model.Organization.ID) 
    </div> 
} 
else { 
    @Html.DropDownListFor(model => model.Organization.ID, new SelectListItem[] { }) 
} 

pousser un tableau vide d'articles, au lieu d'afficher un élément de sélection vide.

+0

En fait mettre