MVC dropdownlist sélectionné la valeur
Hey j'ai essayé de suivre pour définir la valeur sélectionnée de la liste déroulante.
Dans Mon controller:
u.Roles = new List<AspNetRole>();
foreach (var role in db.AspNetRoles)
{
u.Roles.Add(role);
}
Et de mon point de Vue:
@Html.DropDownList(Model.role.Id, new SelectList(Model.Roles, "Id", "Name"), htmlAttributes: new { @class = "form-control"})
Mais toujours pas de travail, je n'ai pas obtenu la valeur sélectionnée. Lors du débogage, je peux voir que Model.role.Id
contient la valeur sélectionnée.
Note également que l'Id est de type chaîne de caractères, car il est haché.
Ce que je fais de mal?
- votre code n'est pas mauvais en soit vraiment.. tu viens de manquer la partie où vous dites
SelectList
ce que la valeur sélectionnée devrait être.SelectList(Model.Roles, "Id", "Name", Model.role.Id)
- Vous ne faites rien de mal. Si la valeur de
Model.role.Id
correspond à l'une desRoles.Id
valeurs alors que l'option sera sélectionnée. Vérifier le code html de votre génération pour s'assurer qu'il existe une option avec une valeur qui ne correspond pas exactement. - Merci, c'est tout ce que je besoin =)
Vous devez vous connecter pour publier un commentaire.
Il existe peu de moyens d'affichage DropDownList dans MVC. J'aime l'approche suivante.
Remarque: Vous avez besoin d'une collection de SelectListItem dans le modèle.
Modèle
Contrôleur
Vue
int?
) et ensuite d'ajouter quelque chose commenew SelectListItem() { Text = "-- Select --", Value =""}
en haut de la Liste. Cela fonctionne aussi bien avec DataAnnotations et[Required]
.Selected
propriété deSelectListItem
lors de votre liaison à une propriété. Ses la valeur de la propriété qui détermine l'option est sélectionnée et réglage manuel de laSelected
propriété est tout simplement ignorés (HtmlHelper méthode remplace donc son inutile supplémentaire)