我试图删除我对System.Web.Mvc
依赖的代码,因为我已经将我的模型提取到一个单独的.dll(在MVC项目之外),以便它可以在许多项目之间共享。 / p>
我正在尝试创建一个“自定义SelectListItem
”,它只是一个class
,其中包含string Text
和string 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>
。
答案 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();