我有这个来填充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。但是,在渲染视图时,列表中的所有选项都没有被选中。
有什么想法吗?
更新:问题不在于任何控制配置。我的问题是我的网址中有多余的空格。我所要做的只是调用.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();
});
答案 0 :(得分:2)
DropDownListFor
Helper使用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
});