自定义选择列表项

时间:2014-09-11 20:00:21

标签: c# asp.net-mvc

我试图删除我对System.Web.Mvc依赖的代码,因为我已经将我的模型提取到一个单独的.dll(在MVC项目之外),以便它可以在许多项目之间共享。 / p>

我正在尝试创建一个“自定义SelectListItem”,它只是一个class,其中包含string Textstring Value两个属性,如下所示:

public class DropDownListItem
{
    public string Text { get; set; }
    public string Value { get; set; }
}

但是,我试图找到一种方法将此对象传递到我视图中的DropDownListFor。无论如何操纵这个以便我可以做类似的事情:

@Html.DropDownListFor(x => x.Value, Model.Values, new { @class="form-control" })

Models.Values的类型为List<DropDownListItem>

2 个答案:

答案 0 :(得分:1)

哟不需要创建DropDownListItem类。

例如,假设你有以下课程:

class MyClass
{
 public int Id {get; set; }
 public string name {get; set; }
}

让dropDownlist包含一个MyClass列表,你可以简单地使用:

 @Html.DropDownListFor(model => model.Entiy.Id, new SelectList(MyList, "Id", "Name"))

id重新发布值,名称将是文本。 希望这能帮助你。

答案 1 :(得分:-2)

您可以将列表项放在viewbag中,并在视图中获取值,如下所示:

@Html.DropDownList("Ligas")

和你的代码隐藏

Modelo.AdminSitio = Modelo.GetAdminSitio();
ViewBag.Ligas = new SelectList(Modelo.AdminSitio.ListadoLigas, "Value", "Text");
当listdoLigas等于

ListadoLigas= (from x in db.Ligas select new DropDownListItem { Value = x.Oid_Liga, Text = x.NombreDeLiga}).ToList();