0

我想将 Html.DropDown 列表与我在数据读取器中的值绑定。

以下几个示例我通过 Method 将我的 DataReader 转换为 Enumerator ,GetEnumerator 而不是在 Controller 中尝试转换为 SelectList ,Cast<SelectList>().GetEnumerator()但在这里我收到一个错误:

'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)
4

1 回答 1

0

我会尝试使用 .Select

ViewBag.prsns = prsns.Select(x => new SelectListItem {Text = x.ID, Value = x.Name}).ToList()

(ID 和 Name 是假定字段,将它们替换为与您的需求相对应的字段)

于 2013-03-12T16:20:09.600 回答