Maison >développement back-end >C++ >Comment lier une liste d'employés à une aide à tag de sélection dans ASP.NET Core MVC?

Comment lier une liste d'employés à une aide à tag de sélection dans ASP.NET Core MVC?

Barbara Streisand
Barbara Streisandoriginal
2025-01-28 21:06:09796parcourir

How to Bind a List of Employees to a Select Tag Helper in ASP.NET Core MVC?

ASP.NET CORE MVC SELECT TAG HELPER: listes de listes d'employés

Ce guide montre comment lier efficacement une liste d'employés à une aide à tag de sélection dans ASP.NET Core MVC, en veillant à ce que la valeur sélectionnée soit correctement cartographiée à la propriété EmployeeId.

Structure du modèle de visualisation:

Supposons que votre modèle de vue est structuré comme suit:

<code class="language-csharp">public class MyViewModel
{
    public int EmployeeId { get; set; }
    public string Comments { get; set; }
    public List<Employee> EmployeesList { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public string FullName { get; set; }
}</code>

remplissant la liste de sélection:

La clé consiste à créer un objet SelectList à partir de votre EmployeesList et à l'utiliser dans votre vue. Voici comment vous pouvez le faire dans votre action de contrôleur:

<code class="language-csharp">public IActionResult Create()
{
    var vm = new MyViewModel();
    vm.EmployeesList = new List<Employee>
    {
        new Employee { Id = 1, FullName = "Shyju" },
        new Employee { Id = 2, FullName = "Bryan" }
    };
    return View(vm);
}</code>

et à votre avis:

<code class="language-html"><select asp-for="EmployeeId" asp-items="@new SelectList(Model.EmployeesList, \"Id\", \"FullName\")"></select></code>

Cela lie de manière concise le SelectList à la propriété EmployeeId, affichant FullName comme texte d'option et en utilisant Id comme valeur.

Pré-sélection un employé:

pour présélectionner un employé, définissez la propriété EmployeeId dans votre modèle de vue avant de la passer à la vue:

<code class="language-csharp">public IActionResult Create()
{
    var vm = new MyViewModel();
    vm.EmployeesList = new List<Employee> { /* ... your employees ... */ };
    vm.EmployeeId = 2; // Pre-selects Bryan
    return View(vm);
}</code>

Alternative: Utilisation de Viewbag (moins recommandé):

Bien que possible, l'utilisation de ViewBag est généralement moins préférée en raison de sa nature dynamique et de son potentiel d'erreurs. Voici un exemple:

<code class="language-csharp">// Controller
ViewBag.Employees = new List<SelectListItem>
{
    new SelectListItem { Text = "Shyju", Value = "1" },
    new SelectListItem { Text = "Bryan", Value = "2" }
};

// View
<select asp-for="EmployeeId" asp-items="@ViewBag.Employees"></select></code>

Scénarios avancés:

  • Sélection multiple: Utilisez un type de tableau ou de liste pour EmployeeId dans votre modèle de vue pour autoriser plusieurs sélections.
  • Groupement: Utilisez la propriété SelectListItem Group pour regrouper les options dans la liste déroulante.

N'oubliez pas de consulter la documentation officielle de Microsoft sur des aides à la balise sélectionnés pour des fonctionnalités et des options plus avancées. L'utilisation de l'approche SelectList directement de votre modèle est généralement plus propre et plus sûre que d'utiliser ViewBag.

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