自定义选择列表项
本文关键字:列表 选择 自定义 | 更新日期: 2023-09-27 18:21:31
我正试图消除我的代码对System.Web.Mvc
的依赖,因为我已经将我的模型提取到一个单独的.dll(MVC项目之外)中,这样它就可以在许多项目之间共享。
我正在尝试创建一个"自定义SelectListItem
",它只是一个具有string Text
和string Value
两个属性的class
,看起来像:
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>
类型。
Yo不需要创建DropDownListItem类,而是可以创建自己的POCO(Plain-Old-C#-Object)来包含列表选项:
例如,假设您有以下类:
class MyClass
{
public int Id {get; set; }
public string name {get; set; }
}
要拥有包含MyClass列表的dropDownlist,您可以简单地使用:
@Html.DropDownListFor(model => model.Entity.Id, new SelectList(MyClass, "Id", "Name"))
id表示所选内容的值,名称将是DropDownList中显示的文本。
希望这能有所帮助!
您可以将列表项放在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();