Maison > développement back-end > C++ > Comment remplir une liste Razor DropDownList avec une liste dans MVC ?

Comment remplir une liste Razor DropDownList avec une liste dans MVC ?

DDD
Libérer: 2024-12-29 22:44:33
original
697 Les gens l'ont consulté

How to Populate a Razor DropDownList with a List in MVC?

Remplir Razor DropDownList avec une liste dans MVC

Dans ce scénario, nous avons un modèle contenant un List, à savoir la méthode DbUserRoles GetRoles(), et un Controller qui charge la vue tout en passant la liste récupérée comme modèle.

Pour remplir une liste déroulante, un modèle de vue (UserRoleViewModel) peut être introduit pour séparer la logique métier et simplifier la vue. Ce modèle de vue comprend SelectedUserRoleId pour la sélection des utilisateurs et une liste (UserRoles) pour les éléments déroulants.

Contrôleur :

  • Transformez la liste DbUserRoles en un formulaire approprié pour la présentation. (liste SelectListItem) en utilisant LINQ Sélectionnez.

View :

  • Utilisez @Html.LabelFor et @Html.DropDownListFor pour lier les propriétés du modèle de vue au code HTML correspondant. éléments.

Exemple :

Viewmodel :

public class UserRoleViewModel
{
    [Display(Name = "User Role")]
    public int SelectedUserRoleId { get; set; }
    public IEnumerable<SelectListItem> UserRoles { get; set; }
}
Copier après la connexion

Contrôleur :

private IEnumerable<SelectListItem> GetRoles()
{
    var dbUserRoles = new DbUserRoles();
    var roles = dbUserRoles
                .GetRoles()
                .Select(x =>
                        new SelectListItem
                            {
                                Value = x.UserRoleId.ToString(),
                                Text = x.UserRole
                            });

    return new SelectList(roles, "Value", "Text");
}

public ActionResult AddNewUser()
{
    var model = new UserRoleViewModel
                    {
                        UserRoles = GetRoles()
                    };
    return View(model);
}
Copier après la connexion

Afficher :

@model UserRoleViewModel

@Html.LabelFor(m => m.SelectedUserRoleId)
@Html.DropDownListFor(m => m.SelectedUserRoleId, Model.UserRoles)
Copier après la connexion

Ceci L'approche donne lieu à une liste déroulante remplie avec les valeurs de la liste DbUserRoles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal