ASP.NET核心MVC选择标签助手:绑定员工列表
>本指南演示了如何有效地将员工列表绑定到ASP.NET Core MVC中的选择标签助手,并确保所选值正确地将其映射到EmployeeId
>假设您的视图模型的结构如下:
>
<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>
> 关键是从您的
中创建对象,并在视图中使用它。 以下是您可以在控制器操作中执行此操作的方法:SelectList
EmployeesList
<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>
这简洁地将
<code class="language-html"><select asp-for="EmployeeId" asp-items="@new SelectList(Model.EmployeesList, \"Id\", \"FullName\")"></select></code>
属性,将SelectList
显示为选项文本,并使用EmployeeId
作为值。FullName
Id
预选员工:
预选员工,在将视图模型中设置属性之前,然后将其传递给视图:
EmployeeId
替代:使用ViewBag(不推荐):
<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>
通常是不太喜欢的。 这是一个示例:
高级方案:ViewBag
<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>
多重选择:使用视图模型中的数组或列表类型来允许多个选择。
EmployeeId
以上是如何将员工列表绑定到ASP.NET Core MVC中的选择标签助手?的详细内容。更多信息请关注PHP中文网其他相关文章!