0

Html.DropDown リストを、データ リーダーにある値にバインドしたいと考えています。

いくつかの例に従って、メソッドを介して 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

自分のドロップ リストをデータベースの結果とバインドする方法を教えてください。

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 に答える