2015-09-15 3 views
0

Попытка получить список всех моих категорий в моем представлении, но это не очень хорошо для меня. Это мой контроллер:Невозможно преобразовать тип 'System.Web.Mvc.SelectList' в 'System.Collections.Generic.List <string>'

public ActionResult Index(int? id) 
{ 
    ViewBag.Operation = id; 
    ViewBag.Products = _db.Products.ToList(); 
    ViewBag.CategoryId = new SelectList(_db.Categories, "Id", "Name"); 
    Product product = _db.Products.Find(id); 
    return View(product); 
} 

И это код, который я пытаюсь запустить, на мой взгляд

var categories = ((List<string>) ViewBag.CategoryId); 

Но я получаю эту ошибку:

Cannot convert type 'System.Web.Mvc.SelectList' to 'System.Collections.Generic.List'

+0

Так что это говорит, что нельзя преобразовать тип SelectList в список –

+1

Почему вы хотите запустить этот код в своем представлении? Это не «Список », поэтому вы не можете использовать его. – CodeCaster

+0

@CodeCaster Потому что я собираюсь сделать вкладки, поэтому мне нужно получить каждое имя категории и отсортировать каждый элемент под правой категорией –

ответ

0

Почему SelectList? Вы можете просто использовать список в методе действия:

ViewBag.Categories = _db.Categories.ToList(); 
+0

Потому что у меня есть Создать в том же представлении, а Create Action имеет SelectList, поэтому я предположил, что должен был иметь его там же. –

1

Вы должны были бы привести его к SelectList в View, как и в действии контроллера вы создаете объект типа SelectList не List<string>:

var categories = ViewBag.CategoryId as SelectList; 
Смежные вопросы