none
SelectListItem no Model RRS feed

  • Pergunta

  • Boa noite Galera 
    Pensando em diminuir a duplicidades de códigos necessários para ficar populando os Dropdown das views(Estado, Cidade entre outros).  Cheguei a solução de popular-los no construtor do model porem fiquei na duvida se isso é considerado uma boa pratica segundo a arquitetura MVC. 

    Vou deixar o código para avaliarem, se teria alguma questão em usar um contexto no model para popular os selecItens 

      public class School
        {
            private AppDbContext _context = new AppDbContext();

            public School(AppDbContext context)
            {
                _context = context;
            }

            public Guid Id { get; set; }

            public int Code { get; set; }
            [DisplayName("Escola")]
            public string SchoolName { get; set; }

            [DisplayName("Nível até")]
            public int LevelId { get; set; }

            [DisplayName("Endereço")]
            [ForeignKey("Address")]
            public Guid AddressId { get; set; }

            [DisplayName("Instituição")]
            [ForeignKey("Entity")]
            public Guid EntityId { get; set; }

            public virtual Address Address { get; set; }

            public virtual Entity Entity { get; set; }

            public virtual SerieLevel Level { get; set; }
            [NotMapped]
            public List<SelectListItem> ListSerieLevel { get; set; }

            public bool DocumentDeliveryType { get; set; }

            [DisplayName("Local de Entrega dos Documentos")]
            [ForeignKey("DocumentDeliveryLocation")]
            public Guid? DocumentDeliveryLocationId { get; set; }

            [DisplayName("Local de Entrega dos Documentos")]
            public virtual DocumentDeliveryLocations DocumentDeliveryLocation { get; set; }

            public School()
            {
                Id = Guid.NewGuid();
                ListSerieLevel = _context.SerieLevel.Select(x => new SelectListItem { Text = x.LevelName, Value = x.Id.ToString() }).ToList();
            } 
    terça-feira, 30 de julho de 2019 21:35