Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Maksim I.
0 / 0 / 1
Регистрация: 24.07.2012
Сообщений: 38
1

Нет элемента ViewData типа "IEnumerable<SelectListItem>"

04.08.2014, 18:08. Просмотров 2612. Ответов 2
Метки нет (Все метки)

Всем привет, пытаюсь сделать выпадающий список, но падает ошибка: "Нет элемента ViewData типа "IEnumerable<SelectListItem>", который имеет ключ "CATEGORY_QUESTION_ID".", подскажите из-за чего

Метод:
C#
1
2
SelectList object_items = new SelectList(db.object_items.Where(element => element.OBJECT_ID == 3), "item_id", "item_name");
ViewBag.object_items = object_items;

Представление:
C#
1
@Html.DropDownListFor(model => model.CATEGORY_QUESTION_ID, ViewBag.object_items as SelectList)

Модель:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    [Table("table")]
    public class RequestSupport
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int ITEM_ID { get; set; }
 
        [Required]
        [DataType(DataType.Text)]
        [Display(Name = "Категория")]
        public int? CATEGORY_ID { get; set; }
 
        [ForeignKey("CATEGORY_ID")]
        public virtual system_object_item OBJECT_NAMECATEG { get; set; }
    }
 
 
    [Table("system_object_items")]
    public class system_object_item
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int ITEM_ID { get; set; }
 
        [Required]
        [DataType(DataType.Text)]
        [Display(Name = "Наименование")]
        public string ITEM_NAME { get; set; }
        public int OBJECT_ID { get; set; }
 
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2014, 18:08
Ответы с готовыми решениями:

Для этого словаря требуется элемент модели типа "System.Collections.Generic.IEnumerable"
добрый всем вечер. только начал копать mvc никак не могу понять в чем я не...

Тип "BookContext" не может быть использован как параметр типа "TContext" в универсальном методе Database.SetInitializer
помогите пожалуйста, как исправить эту ошибку Ошибка CS0311 Тип...

Элемент модели, переданный в словарь, имеет тип "Int32", но для этого словаря требуется элемент модели типа "Calc"
Текст ошибки: System.InvalidOperationException: Элемент модели, переданный в...

Исключение типа "System.NullReferenceException" при сохранении данных
Добрый вечер! Строго не судите,только учусь. Проблема заключается в следующем:...

Ошибка в классе в работе с БД MSSQL2014: Исключение типа "System.NullReferenceException"
Здравствуйте. есть небольшой класс для работы с моей бд.я только изучаю и...

2
Masia_March
63 / 63 / 12
Регистрация: 09.08.2011
Сообщений: 116
Записей в блоге: 1
04.08.2014, 18:26 2
Вы должны использовать SelectListItem, который реализует формат HTML5 элемента select
HTML5
1
2
3
4
<select>
  <option>Пункт 1</option>
  <option>Пункт 2</option>
</select>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static class ExtensionMethod
    {
        public static List<SelectListItem> GetSizeOrganization(this List<SelectListItem> list, string selected = "")
        {
            
            list.Add(new SelectListItem { Text = "1", Value = "1", Selected = true });
            list.Add(new SelectListItem { Text ="2", Value = "2" });
            list.Add(new SelectListItem { Text = "3", Value = "3" });           
            return list;
        }
}
 
public class AccountController : Controller
{
                [AllowAnonymous]
        public ActionResult Index()
        {
            ViewBag.SizeOrganization = new List<SelectListItem>().GetSizeOrganization();
            return View();
        }
}
Razor
HTML5
1
@Html.DropDownListFor(model => model.SizeOrganization, ViewBag.SizeOrganization as SelectList)
Результат
HTML5
1
2
3
4
5
<select id="SizeOrganization" name="SizeOrganization">
<option selected="selected" value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
0
Maksim I.
0 / 0 / 1
Регистрация: 24.07.2012
Сообщений: 38
04.08.2014, 18:49  [ТС] 3
ERROR: "Нет элемента ViewData типа "IEnumerable<SelectListItem>", который имеет ключ "CATEGORY_QUESTION_ID"."

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public static class ExtensionMethod
    {
        public static List<SelectListItem> GetSizeOrganization(this List<SelectListItem> list, string selected = "")
        {
            DBContext db = new DBContext();
            var elements = db.object_items.Where(element => element.OBJECT_ID == 3);
            foreach (var item in elements)
            {
                list.Add(new SelectListItem { Text = item.ITEM_NAME, Value = item.ITEM_ID.ToString(), });
            }
            return list;
        }
    }
 
 
        public ActionResult Create()
        {
            ViewBag.object_items = new List<SelectListItem>().GetSizeOrganization();
            return View();
        }


C#
1
@Html.DropDownListFor(model => model.CATEGORY_QUESTION_ID, ViewBag.object_items as SelectList)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 18:49

Autocomplete: Указанный член типа "DisplayName" не поддерживается в выражениях LINQ to Entities
Вечер добрый. Такая проблема при попытке создать Autocomplete: Указанный...

Исключение типа "System.Data.EntityCommandExecutionException"
Исключение типа &quot;System.Data.EntityCommandExecutionException&quot; возникло в...

Ошибка "'System.Web.Mvc.HtmlHelper<dynamic>" не имеет применимого метода с именем "ActionLink"
Всем привет непойму где ошибка &lt;ul&gt; @foreach (var item in Model) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru