📅  最后修改于: 2023-12-03 15:28:21.343000             🧑  作者: Mango
在 ASP.NET Core 中,我们可以使用 asp-items
指令来渲染一个选择(Select)表单控件。asp-items
指令将数据源中的数据转换为 HTML 的 <option>
标签,并将其呈现为下拉列表菜单。在本文中,我们将介绍如何使用 asp-items
指令以及如何处理数据源。
下面是一个使用 asp-items
指令渲染选择控件的示例:
<select asp-for="Category" asp-items="Model.Categories"></select>
在这个例子中,我们将 Model.Categories
属性作为数据源,将数据源中的数据呈现为选择控件。如果我们想要将数据源中的某个属性用作显示文本,可以使用 asp-item-text
指令。例如,我们可以将 Model.Categories
中的 Name
属性用作显示文本:
<select asp-for="Category" asp-items="Model.Categories" asp-item-text="Name"></select>
同样,我们也可以指定数据源的 Value
属性使用 asp-item-value
指令:
<select asp-for="Category" asp-items="Model.Categories" asp-item-value="Id" asp-item-text="Name"></select>
这个例子中,我们将 Model.Categories
中的 Id
属性用作 <option>
标签的 value
属性,将 Name
属性用作显示文本。
在 ASP.NET Core 中,我们可以通过多种方式提供数据源,例如从模型绑定器获取数据,从 ViewData 中获取数据,从 ViewBag 中获取数据等等。
如果我们想要手动提供数据源,可以在控制器中的操作方法中返回数据源。例如,我们可以使用以下代码从数据库中检索一组类别:
public IActionResult Index()
{
var categories = _dbContext.Categories.ToList();
return View(new MyViewModel { Categories = categories });
}
然后我们可以在视图中使用 foreach
循环将数据呈现为选择控件:
<select asp-for="Category" asp-items="@(new SelectList(Model.Categories, "Id", "Name"))"></select>
在这个例子中,我们将 SelectList
对象作为数据源,该对象包含将 Model.Categories
转换为下拉列表所需的数据。SelectList
构造函数需要三个参数:数据源、用作值的属性名称和用作显示文本的属性名称。
在 ASP.NET Core 中,我们可以使用 asp-items
指令来渲染选择控件。使用 asp-item-value
和 asp-item-text
指令可以指定数据源中的属性用作值和显示文本。我们可以通过在控制器中返回数据源以手动提供数据源,并使用 SelectList
类将数据源转换为下拉列表呈现。