📅  最后修改于: 2023-12-03 15:07:12.887000             🧑  作者: Mango
如果你正在开发一个 ASP.NET MVC 应用程序,并且需要添加一个下拉列表,但是又不想把所有选项静态地列在 HTML 中,你可以创建一个空的下拉列表并在控制器中填充它。
在视图文件(.cshtml)中,使用 Html.DropDownList()
方法创建一个空的下拉列表。示例代码如下:
@Html.DropDownList("myDropDownList", Enumerable.Empty<SelectListItem>(), "-- 请选择 --")
这个方法有三个参数:
IEnumerable<SelectListItem>
,因为我们还没有填充任何选项。在控制器中,你需要将选项添加到下拉列表中。示例代码如下:
public ActionResult MyAction()
{
var items = new List<SelectListItem>
{
new SelectListItem { Text = "选项 1", Value = "1" },
new SelectListItem { Text = "选项 2", Value = "2" },
new SelectListItem { Text = "选项 3", Value = "3" },
};
ViewBag.MyDropDownList = new SelectList(items, "Value", "Text");
return View();
}
这个代码片段将三个选项添加到 items
列表中,然后通过 ViewBag
将它传递给视图。下拉列表的名称是 MyDropDownList
,因此我们使用 ViewBag.MyDropDownList
将下拉列表选项传递给视图。注意,我们使用 SelectList
类来创建下拉列表选项。第一个参数是选项列表,第二个参数是指定选项值的属性名称,第三个参数是指定选项文本的属性名称。
现在,你可以在视图文件中使用 Html.DropDownList()
方法来渲染下拉列表,并提供上一步中传递的选项。示例代码如下:
@Html.DropDownList("myDropDownList", ViewBag.MyDropDownList as SelectList, "-- 请选择 --")
这个代码片段中,我们使用 ViewBag.MyDropDownList
强制转换为 SelectList
,并将它传递给 Html.DropDownList()
方法。注意,第一个参数仍然是下拉列表的名称,第二个参数是从 ViewBag
中获取的 SelectList
对象,第三个参数是下拉列表默认选项的文本。
现在你已经学会了如何创建空的下拉列表并在控制器中填充选项。回到你的 ASP.NET MVC 应用程序并开始在你的应用程序中使用它吧!