我想将Html.DropDown列表与我在数据读取器中的值绑定。
以下几个例子我通过GetEnumerator
将我的DataReader转换为枚举器
方法和在Controller中尝试强制转换是通过Cast<SelectList>().GetEnumerator()
作为SelectList,但在这里我得到一个错误:
'System.Collections.IEnumerator' does not contain a definition for 'Cast' and the best extension method overload 'System.Linq.Queryable.Cast<TResult>(System.Linq.IQueryable)' has some invalid arguments D:\Dev\MYPROJECT\MYPROJECT\MYPROJECT\Controllers\UserController.cs
任何人都可以帮我找出如何将我自己的Drop列表与数据库中的结果绑定。
In Model:
var prsnsInfo = new string[3];
IEnumerator Iprsns = null;
try
{
if (prsns != null || prsns.HasRows)
Iprsns = prsns.GetEnumerator();
}
catch (Exception ex) { }
return Iprsns;
in Controller:
var prsns = ModelObj.GetPersons(1);
ViewBag.prsns = prsns.Cast<SelectList>().GetEnumerator();
in View:
@Html.DropDownList("person",(IEnumerable<SelectList>)ViewBag.prsns)
答案 0 :(得分:0)
我会尝试使用.Select
ViewBag.prsns = prsns.Select(x =&gt; new SelectListItem {Text = x.ID,Value = x.Name})。ToList()
(ID和Name是假定的字段,用符合您需要的字段替换它们)