📜  asp net mvc 将 ienumerable 转换为 selectlistitem - C# (1)

📅  最后修改于: 2023-12-03 14:59:23.930000             🧑  作者: Mango

ASP.NET MVC: 将 IEnumerable 转换为 SelectListItem

在 ASP.NET MVC 开发中,经常需要将数据模型转换为前端页面中的下拉选择框(select)选项。而 SelectListItem 则是 MVC 中专门用于表示下拉选择框选项的类。本文将介绍如何将数据模型中的 IEnumerable 转换为 SelectListItem。

实现步骤
1. 创建数据模型

假设我们有一个数据模型,其中包含了要在下拉选择框中显示的数据,如下所示:

public class MyDataModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}
2. 创建 SelectListItem 实例

使用 MyDataModel 中的数据,我们可以创建一个 SelectListItem 示例,用于在视图中显示下拉选择框选项。示例代码如下:

var model = new MyDataModel { Id = 1, Name = "ABC" };
var selectListItem = new SelectListItem { Text = model.Name, Value = model.Id.ToString() };
3. 将 IEnumerable 转换为 SelectListItem

接下来,我们将演示如何将 IEnumerable 转换为 List。我们将使用 LINQ 中的 Select 方法,并将 MyDataModel 类型转换为 SelectListItem 类型。示例代码如下:

IEnumerable<MyDataModel> myDataModels = // 获取 MyDataModel 实例的 IEnumerable
List<SelectListItem> selectListItems = myDataModels
    .Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() })
    .ToList();

在上述代码中,我们用 Select 方法将 MyDataModel 类型映射为 SelectListItem 类型,并使用 ToList 方法将结果转换为 List

4. 在视图中使用 SelectListItem

最后,我们可以将转换后的 List 传递到视图中,在下拉选择框中显示它们。示例代码如下:

@Html.DropDownListFor(x => x.SelectedId, selectListItems)

在上述代码中,我们使用 Html.DropDownListFor 方法将 SelectListItem 列表显示在视图中。其中,SelectedId 是视图模型中表示所选项目的属性。