Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义选择列表项_C#_Asp.net Mvc - Fatal编程技术网

C# 自定义选择列表项

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; } } 然而,在我的视图中,我正试

我正试图摆脱对System.Web.Mvc的依赖,因为我已经将我的模型提取到Mvc项目之外的一个单独的.dll中,以便它可以在许多项目之间共享

我试图创建一个自定义SelectListItem,它只是一个具有字符串文本和字符串值两个属性的类,如下所示:

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是一种不好的方法,它应该与模型一起传递。无论如何,这似乎都无法完成任务。