要解决ASP.NET Core 2.1下拉菜单为空的问题,你需要检查以下几个方面:
public class MyController : Controller
{
private readonly MyContext _context;
public MyController(MyContext context)
{
_context = context;
}
public IActionResult Index()
{
var items = _context.MyTable.ToList(); // MyTable是你的数据源表
ViewData["Items"] = new SelectList(items, "Id", "Name"); // Id和Name是表中的字段
return View();
}
}
在上述示例中,_context.MyTable
是你的数据源表。通过调用ToList()
方法,你可以将查询结果转换为一个列表。然后,使用SelectList
类来创建一个包含列表数据的下拉菜单。
Html.DropDownListFor
或Html.DropDownList
等方法来生成下拉菜单的HTML代码。以下是一个使用Html.DropDownListFor
的示例代码:@model MyViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.SelectedItemId, (SelectList)ViewData["Items"], "Please select an item")
}
在上述示例中,MyViewModel
是你的视图模型类,其中包含一个SelectedItemId
属性,用于接收用户选择的项目的值。(SelectList)ViewData["Items"]
用于传递在控制器中设置的下拉菜单选项。最后,使用Html.BeginForm
方法创建一个表单并添加一个提交按钮。
通过检查以上两个方面,你应该能够解决ASP.NET Core 2.1下拉菜单为空的问题。