我正在使用带有EF数据库结构的MVC。
我希望视图中的下拉列表项目显示的名称与其出现的名称不同。
现在,lambda查询返回一个list()。 我希望每个项目根据其当前名称获取字符串名称。最终,所选字段需要在另一个lambda中用作Byte。
修改
//view
<p>
@using (Html.BeginForm("Index", "Home", FormMethod.Get))
{
<p>
@Html.DropDownList("vbType", (SelectList)ViewBag.Type, "" , new { onchange = "form.submit();" })
....
//controller
var typeLst = new List<byte>();
var typeQry = from t in db.model1
orderby t.TYPE
select t.TYPE;
typeLst.AddRange(typeQry.Distinct());
ViewBag.vbType = new SelectList(typeLst);
....
提前致谢。
答案 0 :(得分:0)
您可以创建SelectListItem
以显示在下拉列表中。
示例:
@Html.DropDownListFor(model => model.YearStartedToPay,
Enumerable.Range(DateTime.Today.Year - 60, 61).OrderByDescending(x => int.Parse(x.ToString())).Select(n => new SelectListItem() { Text = n.ToString(), Value = n.ToString(), Selected = false }).ToList<SelectListItem>(),....)
在这种情况下,我正在创建一个Enumerable,它将是从EF返回的列表,排序并选择为SelectListItem。
答案 1 :(得分:-1)
您需要使用dropdownlist的Value属性。使列表成为SelectListItem的类型。
指定文字= [您的所需文字]和价值= [当前名称]