使用数据读取器结果绑定DropDown列表

时间:2013-03-12 10:14:18

标签: asp.net-mvc razor ienumerable

我想将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)

1 个答案:

答案 0 :(得分:0)

我会尝试使用.Select

ViewBag.prsns = prsns.Select(x =&gt; new SelectListItem {Text = x.ID,Value = x.Name})。ToList()

(ID和Name是假定的字段,用符合您需要的字段替换它们)