J'ai essayé ceci dans RC1 puis mis à jour vers RC2 mais cela n'a pas résolu le problème.
// dans mon contrôleur
ViewData["UserId"] = new SelectList(
users,
"UserId",
"DisplayName",
selectedUserId.Value); // ceci a une valeur
résultat : la propriété SelectedValue est définie sur l'objet
// dans ma vue
<%=Html.DropDownList("UserId", (SelectList)ViewData["UserId"])%>
résultat : toutes les options attendues sont rendues au client, mais l'attribut sélectionné n'est pas défini. L'élément dans SelectedValue existe dans la liste, mais le premier élément de la liste est toujours défini par défaut comme sélectionné.
Comment devrais-je faire cela?
Mise à jour Grâce à la réponse de John Feminella j'ai découvert quelle était la cause du problème. "UserId" est une propriété dans le modèle auquel ma vue est fortement typée. Quand Html.DropDownList("UserId" est changé à n'importe quel autre nom que "UserId", la valeur sélectionnée est rendue correctement.
Cela a pour conséquence que la valeur n'est pas liée au modèle.
0 votes
Etes-vous certain que la valeur est dans la liste?
0 votes
Le problème existe toujours dans la version 1 de ASP.NET MVC
0 votes
Quel est selectedUserId!?
0 votes
Comment devez-vous lier la valeur sur la mise à jour si le nom de votre input n'est pas le même que votre propriété ?