Asp.net mvc 如何在下拉列表/默认下拉列表中添加选项值
上面的代码是我用来使用linq检索数据的Asp.net mvc 如何在下拉列表/默认下拉列表中添加选项值,asp.net-mvc,asp.net-mvc-3,html-select,Asp.net Mvc,Asp.net Mvc 3,Html Select,上面的代码是我用来使用linq检索数据的 var EmpPreviousChart = (from m in dataContext.ViewName where ((m.EmployeeID == Id)&&(m.Status=='C')) orderby m.EmployeeID descending
var EmpPreviousChart = (from m in dataContext.ViewName
where ((m.EmployeeID == Id)&&(m.Status=='C'))
orderby m.EmployeeID descending
select m.EmployeeID + "- " + m.JoinDate.ToString());
ViewData["EmpPreviousChartList"] = EmpPreviousChart;
上面的代码填充了我的下拉列表,我首先得到了select。现在我希望加载下拉列表后应该可见的值应该位于select旁边。
如果我有选择,A,B,C。我想要一个可见的。我用partialview来做这个。
如果我可以在选项值中添加一个自动递增字段,我就可以实现它
或者,如果有任何其他出路
SelectList
将当前选定的项目作为参数之一-只需传递您想要选择的项目即可
您应该在控制器中实例化SelectList
,然后将其传递给视图。视图应该尽可能少地具有逻辑性
<%= Html.DropDownList("EmpPreviousCharts", new SelectList((IEnumerable)ViewData["EmpPreviousChartList"]), "Select", new { style = "width:60px;font-family:Verdana;font-size:9px;", ID = "EmpPrevCharts" })%>
var empreviouschart=(来自dataContext.ViewName中的m
其中((m.EmployeeID==Id)&&(m.Status==C'))
orderby m.EmployeeID降序
选择m.EmployeeID+“-”+m.JoinDate.ToString()).ToList();
ViewData[“EmpPreviousChartList”]=新的SelectList(EmpPreviousChart,EmpPreviousChart.FirstOrDefault());
@Evostract-DropDownList扩展方法存在一个已知问题:请确保您的模型的ViewBag/属性中没有与您选择的ID同名的项。我已将代码粘贴到该位置,除此之外没有其他内容using@Evostract-在调试器中验证SelectList是否为您提供IEnumerable
,其中第一项的属性设置为true
。您可能希望创建一个空白视图,然后在一个更简单的示例中进行尝试。
var EmpPreviousChart = (from m in dataContext.ViewName
where ((m.EmployeeID == Id)&&(m.Status=='C'))
orderby m.EmployeeID descending
select m.EmployeeID + "- " + m.JoinDate.ToString()).ToList();
ViewData["EmpPreviousChartList"] = new SelectList(EmpPreviousChart, EmpPreviousChart.FirstOrDefault());
<%= Html.DropDownList("EmpPreviousCharts", (SelectList)ViewData["EmpPreviousChartList"], "Select", new { style = "width:60px;font-family:Verdana;font-size:9px;", ID = "EmpPrevCharts" })%>