MVC如何更改下拉列表项名称

时间:2017-12-08 09:14:41

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

谷歌搜索了一段时间,但我似乎无法接近。

我正在使用带有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);

....

提前致谢。

2 个答案:

答案 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的类型。

指定文字= [您的所需文字]和价值= [当前名称]