0

I have list of string and i have a selected item among those strings.
Controller:

ViewBag.GroupName = new SelectList(Names, Names.Find(s=>s==Place.GroupName));

View:

 @Html.DropDownListFor(model => model.GroupName, (IEnumerable<SelectListItem>)ViewBag.GroupName)

But the selection on the view is always the first item in the list which is not as expected. What could be the problem.

4

3 に答える 3

0

Text/Value に関する情報も SelectList に提供する必要があります。Names は文字列リストだと思うので、次のようにする必要があります。

から SelectListItem リストを作成しますNames

ViewBag.GroupName = (from s in Names
                     select new SelectListItem
                     {
                         Selected = s == Place.GroupName, 
                         Text = s,
                         Value = s
                     }).ToList();

次に、それをビューで使用します。

@Html.DropDownList("GroupName") /*Will get from the ViewBag the list named GroupName*/
于 2013-07-17T16:36:39.650 に答える
0

次のようにリストをキャストしてみてください。

@Html.DropDownListFor(model => model.GroupName, (IEnumerable<SelectList>)ViewBag.GroupName)
于 2013-07-17T16:29:30.007 に答える