ASP.NET MVC:DropDownListFor 在呈现时 select 没有任何选项

ASP.NET MVC: DropDownListFor doesn't select any option when rendered

我用它来填充 ASP.NET MVC 视图中的下拉列表。

C#

ViewBag.Employees = new SelectList(
            _employeeRepository.GetAll(), 
            "ID", 
            "LastName",
            employeeToClientContract.EmployeeID);

CSHTML

@Html.DropDownListFor(model => model.EmployeeID, ViewBag.Employees as IEnumerable<SelectListItem>, "Please select")

注意:出于某种原因,这有效

ViewBag.OverridePhysicians = new SelectList(
            _employeeRepository.GetAll().Where(e => e.EmployeeTypes.TypeType == 1), 
            "ID", 
            "LastName",
            employeeToClientContract.OverridePhysicianID);

@Html.DropDownListFor(model => model.OverridePhysicianID, ViewBag.OverridePhysicians as IEnumerable<SelectListItem>, "Please select")

调试这个我可以看到 Selected 属性 在应该的时候设置为 true。但是当呈现视图时,列表中的 none 个选项被选中。

有什么想法吗?

更新:问题不在于任何控制配置。我的问题是 URL 中有额外的空格。我所要做的就是调用 .Trim() 来解决问题。

$('#itemsTable').bootstrapTable({

        }).on('click-row.bs.table', function (e, row, $element) {
            window.location.href = "/EmployeeToClientContract/Edit?employeeId=" + row[0].toString().trim() + "&clientContractId=" + row[2].toString().trim();
        });

DropDownListFor 帮助程序使用 model.EmployeeID 值在 DropdownList 中设置选定值。这个属性有价值吗?

还有,为什么SelectList遇到这么多困难?您不想像这样填充 ViewBag 吗:

ViewBag.Employees = _employeeRepository
.GetAll()
.Select(x => new SelectListItem
{
     Text = x.LastName,
     Value = x.ID.ToString(),
     Selected = employeeToClientContract.EmployeeID == x.ID
});