Нет элемента ViewData типа 'IEnumerable <SelectListItem>' @ Html.DropDownList - PullRequest
0 голосов
/ 15 декабря 2018

Проблема возникает здесь:

@Html.DropDownList("KategoriId", null, htmlAttributes: new { @class = "form-control" }) 

Вот мой контроллер:

public ActionResult Create()
{
     ViewBag.KategoriId = new SelectList(db.Kategoris, "KategoriId", "KategoriAdi");
     return View();
}

Вот мой вид:

@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
   @Html.LabelFor(model => model.KategoriId, "KategoriId", htmlAttributes: new { @class = "control-label col-md-2" })
   <div class="col-md-10">
      @Html.DropDownList("KategoriId", null, htmlAttributes: new { @class = "form-control" })
      @Html.ValidationMessageFor(model => model.KategoriId, "", new { @class = "text-danger" })
   </div>
</div>

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Это можно сделать с помощью ViewBag приведения типов к IEnumerable<SelectListItem> в CSHTML:

Код CSHTML:

@Html.DropDownList("your_key", (IEnumerable<SelectListItem>)ViewBag.KategoriId, "--Select Any--", new { @class = "form-control"})

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

IList<SelectListItem> items = new List<SelectListItem>();
foreach (var item in db.Kategoris.ToList())
{
  SelectListItem sellist = new SelectListItem();
  sellist.Value = item.code.ToString();
  sellist.Text = item.name;
  items.Add(sellist);
}
ViewBag.KategoriId = items; // at the end this item should be list of `SelectListItem`
0 голосов
/ 15 декабря 2018

Напишите @Html.DropDownList() следующим образом:

@Html.DropDownList("KategoriId", ViewBag.KategoriId as SelectList,"Select Ketegory Id", htmlAttributes: new { @class = "form-control" })

Это должно решить вашу проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...