以下是一个使用ASP.NET Core Razor Pages实现从IEnumerable
的下拉列表中选择多个项目的示例代码:
在Razor Pages的.cshtml文件中:
在Razor Pages的.cshtml.cs文件中:
public class IndexModel : PageModel
{
[BindProperty]
public List SelectedItems { get; set; }
public IEnumerable Items { get; set; }
public void OnGet()
{
// 假设你有一个IEnumerable的项目列表
List itemList = new List { "Item 1", "Item 2", "Item 3" };
// 使用LINQ将项目列表转换为SelectListItem列表
Items = itemList.Select(item => new SelectListItem
{
Text = item,
Value = item
});
}
public IActionResult OnPost()
{
// 在这里可以对所选项目执行其他操作
// SelectedItems列表将包含所选项目的值
return Page();
}
}
在上述示例中,我们首先在.cshtml文件中使用元素创建一个多选的下拉列表,并使用
asp-for
指令将所选项目绑定到SelectedItems
属性。然后,我们使用asp-items
指令将Items
属性作为下拉列表的选项。
在.cshtml.cs文件中,我们定义了SelectedItems
属性来存储所选项目的值,并将其使用[BindProperty]
特性进行绑定。我们还定义了Items
属性作为下拉列表的选项。在OnGet
方法中,我们创建一个假设的项目列表,并使用LINQ将其转换为SelectListItem
列表,将其赋值给Items
属性。在OnPost
方法中,我们可以对所选项目执行其他操作,并返回相同的页面。
请注意,上述代码仅提供了从IEnumerable的下拉列表中选择多个项目的解决方案。你可以根据你的具体需求进行修改和调整。