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
DDDoriginal
2024-12-29 22:44:33705parcourir

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; }
}

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);
}

Afficher :

@model UserRoleViewModel

@Html.LabelFor(m => m.SelectedUserRoleId)
@Html.DropDownListFor(m => m.SelectedUserRoleId, Model.UserRoles)

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!

Déclaration:
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