2010-12-08 5 views
2

Je suis confus quant à pourquoi l'option correspondante dans la liste de sélection n'est pas sélectionnée. Lorsque je parcours la boucle, item.DisciplineId = 2, mais l'école n'est pas sélectionnée ("Choisir" est toujours). Aucune suggestion ?Pourquoi aucune option n'est-elle sélectionnée dans la liste déroulante?

Voir

<% foreach (var item in Model.TeamMembers) 
{ %> 
<tr> 
    <td> 
     <%: Html.DropDownListFor(m => item.DisciplineId, Model.MemberDisciplines, "Choose") %> 
    </td> 
</tr> 
<% } %> 

Voir modèle

public SelectList MemberDisciplines { get; set; } 
public IEnumerable<TeamMember> TeamMembers { get; set; }//Set from the model 

MemberDisciplines = new SelectList(new[] { 
       new SelectListItem{ Text = "Technical", Value = "1"}, 
       new SelectListItem{ Text = "School", Value = "2"}, 
       new SelectListItem{ Text = "Health", Value = "3"} 
      }, "Value", "Text"); 

Répondre

2

D'accord, je vous suggère de convertir MemberDisciplines propriété en une méthode avec le contenu suivant:

public SelectList GetMemberDisciplines(object selectedValue) 
{ 
    return new SelectList(new[] { 
     new SelectListItem{ Text = "Technical", Value = "1"}, 
     new SelectListItem{ Text = "School", Value = "2"}, 
     new SelectListItem{ Text = "Health", Value = "3"} 
    }, "Value", "Text", selectedValue); 
} 

Et puis vous l'appelez dans votre DropDownListFor comme suit:

+0

J'aimerais que ce soit ça. Désolé d'être un peu déroutant (j'ai mis à jour le code), mais j'obtiens définitivement le 'DisciplineId' qui est une simple variable' string'. – MisterIsaak

+0

Mis à jour la réponse .. espérons que ça aide. –

+0

Fonctionne parfaitement, je voudrais savoir pourquoi il n'était pas heureux dans l'autre sens. Je n'ai même pas pensé à faire une méthode, je dois garder cela à l'esprit. Merci pour l'aide! – MisterIsaak

Questions connexes