如何在Razor下拉列表中显示两个列值?

时间:2016-10-25 14:47:41

标签: html razor model-view-controller

名称和ID存储在数据库中。我想显示从数据库到ViewPage下拉列表的所有名称和ID。这里我只在下拉列表中显示了Name列。是否有可能在单个drropdown中显示两列?请让我知道解决方案。谢谢!

下面的代码写入控制器:

    var Employe = (from table in dc.tbl_EmployeeDetails
                           select table.Employee_Name).ToList();
    ViewData["empName"] = Employe ;

var department = (from table in dc.tbl_EmployeeDetails
                                      select table.Department).ToList();

                    ViewData["dept"] = department;

客户端代码(ViewPage): -

<select id="reportto" disabled="disabled" font-size:14px">
    @foreach(var person in ViewData["empName"] as List<string>)
                                            {
                                                if(@Model.employee!=@person)
                                                {
                                                    <option>@person</option>
                                                }
                                            }
 </select>

这里我只在下拉列表中显示了名称。如何在单个下拉列表中显示名称和部门?

1 个答案:

答案 0 :(得分:1)

您可以在SELECT中连接员工姓名和部门名称。

var Employe = (from table in dc.tbl_EmployeeDetails
                       select table.Employee_Name + " "+ table.Department).ToList();
ViewData["empName"] = Employe ;

很少有关于改进代码的建议

我看到你正在循环浏览项目并手动构建选项。为什么不使用html帮助器方法?

您可以在SELECT中连接员工姓名和部门名称。

var employeeList= dc.tbl_EmployeeDetails
                     .Select(x=>new SelectListItem { Value=x.Employee_Name,
                                    Text=x.Employee_Name + " "+ x.Department}).ToList();
ViewData["employeeList"] = employeeList;

现在在您看来,使用Html.DropDownList辅助方法

@Html.DropDownList("SelectedEmployee",ViewData["employeeList"] as List<SelectListItem>)

这将生成一个名为“SelectedEmployee”

的SELECT元素