Ваш текущий GetAllLookupKey
не будет компилироваться!Используйте эту версию.
public IEnumerable<SelectListItem> GetAllLookupKey()
{
return _context.ProductType.Select( pt=>new SelectListItem
{
Value = pt.ProductTypeName,
Text = pt.ProductDescription
}).ToList();
}
Также нет необходимости создавать вторую SelectList
.Ваш метод GetAllLookupKey
возвращает коллекцию SelectListItem
, и вы можете установить это в свои ViewData.
ViewData["ProductTypeId"] = _producttyperepository.GetAllLookupKey();
Класс SelectListItem
определен в пространстве имен Microsoft.AspNetCore.Mvc.Rendering;
Поэтому убедитесь, что вы используетезаявление, которое включает в себя это пространство имен в вашем классе.
using Microsoft.AspNetCore.Mvc.Rendering;
Если это другой проект, чем тот, который имеет контроллеры.убедитесь, что в вашем проекте есть ссылка на сборку с этим пространством имен и классом.
Хотя это может решить нашу проблему, SelectListItem
- это класс, представляющий большую часть проблемы уровня пользовательского интерфейса. ИМХО , вам не нужно, чтобы ваш репозиторий возвращал это.Пусть ваш репозиторий вернет более общие данные (например, список ProductType), а код уровня UI (действие контроллера / уровень обслуживания UI и т. Д.) Создаст список объектов SelectListItem из этого списка ProductType.