C# 自定义选择列表项
我正试图摆脱对System.Web.Mvc的依赖,因为我已经将我的模型提取到Mvc项目之外的一个单独的.dll中,以便它可以在许多项目之间共享 我试图创建一个自定义SelectListItem,它只是一个具有字符串文本和字符串值两个属性的类,如下所示:C# 自定义选择列表项,c#,asp.net-mvc,C#,Asp.net Mvc,我正试图摆脱对System.Web.Mvc的依赖,因为我已经将我的模型提取到Mvc项目之外的一个单独的.dll中,以便它可以在许多项目之间共享 我试图创建一个自定义SelectListItem,它只是一个具有字符串文本和字符串值两个属性的类,如下所示: public class DropDownListItem { public string Text { get; set; } public string Value { get; set; } } 然而,在我的视图中,我正试
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类型。您不需要创建DropDownlitItem类 例如,假设您有以下类:
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重复输入值,名称将为文本。
希望这对您有所帮助。您不需要创建DropDownlitItem类 例如,假设您有以下类:
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重复输入值,名称将为文本。
希望这对您有所帮助。您可以将列表项放在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();
您可以将列表项放在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();
您可以制作自己的DropDownList html助手。但是内置的需要这种数据类型。你可以做@Html.DropDownListForx=>x.Value,新建SelectListModel.Values,Value,Text,新建{@class=form control}SelectList是一个视图组件。您的模型不应包含SelectList类型的属性,只应包含您的视图模型。@StephenMuecke-我不确定是否遵循-这将在视图中,不是模型或视图模型。那么我不明白你为什么说你想让我的代码摆脱对System.Web.Mvc的依赖-你模型中的哪些属性在System.Web.Mvc中有依赖关系?你可以自己制作DropDownList html助手。但是内置的需要这种数据类型。你可以做@Html.DropDownListForx=>x.Value,新建SelectListModel.Values,Value,Text,新建{@class=form control}SelectList是一个视图组件。您的模型不应包含SelectList类型的属性,只应包含您的视图模型。@StephenMuecke-我不确定是否遵循-这将在视图中,不是模型或视图模型。那么我不明白你为什么说你想让我的代码摆脱对System.Web.Mvc的依赖-你模型中的哪些属性在System.Web.Mvc中有依赖关系?ViewBag是一种不好的方法,它应该与模型一起传递。无论如何,这似乎都无法完成任务。ViewBag是一种不好的方法,它应该与模型一起传递。无论如何,这似乎都无法完成任务。