Bind DropdownlistFor с суммой

Я пытаюсь связать помощник DropDownListFor с представлением, определенным в контроллере. Но я получаю ошибку.

Просмотреть код: -

@Html.DropDownListFor(model => model.CurrencyID, ViewBag.CurrencyList as SelectListItem)) 

Код контроллера: -

 public ActionResult Create()
>  {
>    var content = from p in db.Currency
>                  where p.IsActive == true
>                  orderby p.CurrencyName
>                  select new { p.CurrencyID, p.CurrencyCode };
> 
>    var x = content.ToList().Select(c => new SelectListItem         
>                            {
>                               Text = c.CurrencyCode,
>                               Value = c.CurrencyID.ToString(),
>                               Selected = (c.CurrencyID == 68)
>                            }).ToList();
>             ViewBag.CurrencyList = x;
> 
>             return View();            
>         }

Полученная ошибка: - System.Web.Mvc.HtmlHelper 'не содержит определения для' DropDownListFor 'и лучший метод перегрузки' System.Web.Mvc.Html.SelectExtensions.DropDownListFor(System.Web.Mvc.HtmlHelper, System. Linq.Expressions.Expression>, System.Collections.Generic.IEnumerable) 'имеет некоторые недопустимые аргументы

Ответ 1

Вам нужно изменить

@Html.DropDownListFor(model => model.CurrencyID, ViewBag.CurrencyList as SelectListItem))

в

@Html.DropDownListFor(model => model.CurrencyID, ViewBag.CurrencyList as IEnumerable<SelectListItem>)

Ответ 2

Вы также можете это сделать. Он должен работать:

ViewBag.CurrencyID = x;

и в поле зрения:

@Html.DropDownListFor(model => model.CurrencyID, null)

Надеюсь это поможет!