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:
EmployeeId
dans votre modèle de vue pour autoriser plusieurs sélections. 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!