MVC RAZOR Refre sh a DropDownListFor из другого DropDownListFor - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть два раскрывающихся списка на мой взгляд MVC

один для модулей

@Html.DropDownListFor(model => model.modules, ViewBag.modules as SelectList
                                               , "--- Sélectionner un module ---", new { @id = "moduleSelected", @class = "form-control form-control-sm" }
                                               )

и другой для подмодулей

@Html.DropDownListFor(model => model.sousModules, ViewBag.sousmodules as SelectList
                                               , "--- Sélectionner un sous module ---", new { @id = "submoduleSelected", @class = "form-control form-control-sm" }
                                               )

, и я хочу: если Пользователь выбирает модуль, подмодуль refre sh и показывает только под_модули выбранного модуля

действие в контроллере

public ActionResult UserTache() {
            var model = new MultiModeles
            {
                aspNetUsers = database.AspNetUsers.Where(p => p.NomAr != null).ToList(),
                aspNetRoles = database.AspNetRoles.ToList(),
                aspNetUserRoles = database.AspNetUserRoles.ToList(),
                modules = database.Module.ToList(),
                sousModules = database.SousModule.ToList()
            };
            ViewBag.Users = new SelectList(database.AspNetUsers, "Id", "UserName");
            ViewBag.modules = new SelectList(database.Module, "ModuleId", "ModuleName");
            ViewBag.sousmodules = new SelectList(database.SousModule, "SousModuleId", "SousModuleName");
            ViewBag.taches = new SelectList(database.AspNetRoles, "Id", "Name");
            return View(model);
        }

module

public partial class Module
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Module()
        {
            this.ApplicationModule = new HashSet<ApplicationModule>();
            this.SousModule = new HashSet<SousModule>();
        }

        public int ModuleId { get; set; }
        public string ModuleName { get; set; }
        public string ModuleDescription { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<ApplicationModule> ApplicationModule { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<SousModule> SousModule { get; set; }
    }

sub module

public partial class SousModule
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public SousModule()
        {
            this.AspNetRoles = new HashSet<AspNetRoles>();
        }

        public int SousModuleId { get; set; }
        public string SousModuleName { get; set; }
        public int ModuleId { get; set; }
        public string SousModuleDescription { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<AspNetRoles> AspNetRoles { get; set; }
        public virtual Module Module { get; set; }
    }
...