C# 如何将SelectListItem转换为SelectList并分配给mvc下拉列表
以下是选择列表项的集合: 我想将此选择项转换为SelectList并将其分配给mvc dropdownlistC# 如何将SelectListItem转换为SelectList并分配给mvc下拉列表,c#,asp.net-mvc,C#,Asp.net Mvc,以下是选择列表项的集合: 我想将此选择项转换为SelectList并将其分配给mvc dropdownlist List<SelectListItem> Genderitems = new List<SelectListItem>(); Genderitems.Add(new SelectListItem() { Text = "Female", Value = "Female" }); Genderitems.Add(new SelectListI
List<SelectListItem> Genderitems = new List<SelectListItem>();
Genderitems.Add(new SelectListItem() { Text = "Female", Value = "Female" });
Genderitems.Add(new SelectListItem() { Text = "Male", Value = "Male" });
Genderitems.Add(new SelectListItem() { Text = "Other Gender", Value = "Other Gender" });
Genderitems.Add(new SelectListItem() { Text = "Unspecified or Unknown", Value = "Unspecified or Unknown" });
List Genderitems=new List();
添加(新的SelectListItem(){Text=“Female”,Value=“Female”});
添加(新的SelectListItem(){Text=“Male”,Value=“Male”});
添加(新的SelectListItem(){Text=“Other-Gender”,Value=“Other-Gender”});
添加(新的SelectListItem(){Text=“未指定或未知”,Value=“未指定或未知”});
无论是SelectList
还是List
都实现了一个接口IEnumerable
。用于创建下拉列表的扩展方法如下所示:
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList);
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList);
公共静态MvcHtmlString下拉列表(此HtmlHelper HtmlHelper,字符串名称,IEnumerable selectList);
公共静态MvcHtmlString DropDownListFor(此HtmlHelper、表达式表达式、IEnumerable selectList);
正如您所见,这两种扩展方法都接受
IEnumerable
而不是SelectList
,因此,正如@StephenMuecke所指出的,您无需将List
转换为SelectList
,SelectList
和List
都实现了接口IEnumerable
。用于创建下拉列表的扩展方法如下所示:
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList);
public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList);
公共静态MvcHtmlString下拉列表(此HtmlHelper HtmlHelper,字符串名称,IEnumerable selectList);
公共静态MvcHtmlString DropDownListFor(此HtmlHelper、表达式表达式、IEnumerable selectList);
正如您所看到的,这两种扩展方法都接受
IEnumerable
而不是SelectList
,因此,正如@StephenMuecke所指出的,您无需将List
转换为SelectList
,您可能正在寻找它
List<SelectListItem> Genderitems = new List<SelectListItem>();
Genderitems.Add(new SelectListItem() { Text = "Female", Value = "Female" });
Genderitems.Add(new SelectListItem() { Text = "Male", Value = "Male" });
Genderitems.Add(new SelectListItem() { Text = "Other Gender", Value = "Other Gender" });
Genderitems.Add(new SelectListItem() { Text = "Unspecified or Unknown", Value = "Unspecified or Unknown" });
SelectList sl = new SelectList(Genderitems, "Value", "Text");
ViewBag.GenderList = sl;
在其他情况下,你可以
@Html.DropDownListFor(x=>x.Gender, ViewBag.GenderList as SelectList, " ", new { id = "drpGender"})
也许你在找这个
List<SelectListItem> Genderitems = new List<SelectListItem>();
Genderitems.Add(new SelectListItem() { Text = "Female", Value = "Female" });
Genderitems.Add(new SelectListItem() { Text = "Male", Value = "Male" });
Genderitems.Add(new SelectListItem() { Text = "Other Gender", Value = "Other Gender" });
Genderitems.Add(new SelectListItem() { Text = "Unspecified or Unknown", Value = "Unspecified or Unknown" });
SelectList sl = new SelectList(Genderitems, "Value", "Text");
ViewBag.GenderList = sl;
在其他情况下,你可以
@Html.DropDownListFor(x=>x.Gender, ViewBag.GenderList as SelectList, " ", new { id = "drpGender"})
第二个参数中的
DropDownList()
和DropDownListFor()
方法接受IEnumerable
,这就是您所拥有的。您不会(也不应该)将其转换为SelectList
(反正是IEnumerable
)。您可以查看我的答案。第二个参数中的DropDownList()
和DropDownListFor()
方法acceptIEnumerable
,这就是您的答案。您不会(也不应该)将其转换为SelectList
(反正是IEnumerable
)。您可以看看我的答案。我相信问题是关于“如何将列表转换为SelectList”,而不是关于“如何创建下拉列表”是的。。我本来想问@user3720460这个问题,但我还没有启用评论,所以我想回答我之前遇到的问题。我相信问题是关于“如何将列表转换为SelectList”,而不是关于“如何创建下拉列表”是的。。我本来想问@user3720460这个问题,但我还没有启用评论,所以我想回答一下我之前遇到的问题