ASP.NET MVC:DropDownListFor在呈现时不选择任何选项

时间:2015-04-10 13:41:16

标签: c# asp.net-mvc drop-down-menu html.dropdownlistfor

我有这个来填充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();
        });

1 个答案:

答案 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
});