public ActionResult Index(proyectos proyectito, modulos modulito) { //Aquí solo selecciona los requerimientos relacionados con el proyecto y módulo que el usuario escogio if (proyectito.codigoPK != 0 && modulito.idPK != 0) //si los parámetros no son igual a 0 { TempData["proyecto"] = proyectito.codigoPK; //se obtiene el código del proyecto TempData["nombreProyecto"] = new proyectosController().ProjectByCode(int.Parse(TempData["proyecto"].ToString())).nombre; //se obtiene el nombre a partir del código anterior TempData["modulos"] = modulito.idPK; //se obtiene el código del módulo try {//se comunica con el controlador de módulos para que le pase los nombres de módulos asociados con el proyecto y código de módulo seleccioando TempData["nombreModulo"] = new modulosController().ModByCode(int.Parse(TempData["proyecto"].ToString()), int.Parse(TempData["modulos"].ToString())).nombre; } catch (NullReferenceException) { TempData.Keep(); //se le solicita mantener los datos nuevamente return(RedirectToAction("Index", "requerimientos")); //si ocurre error se redirige a página de selección } TempData.Keep(); //se le solicita mantener los datos nuevamente return(RedirectToAction("Lista", "requerimientos")); //se redirecciona a la vista del listado de requerimientos } else //si los parámetros son igual a 0 { return(View()); //se recarga la vista } }
//Este método es utilizado en el dropdown en cascada de selección de proyecto y módulo public ActionResult GetModulList(int codigoProyecto) { List <modulos> modulos = new modulosController().PassByProyect(codigoProyecto); //se comunica con el controlador de módulos para que pase el listado de módulos de acuerdo al proyecto ViewBag.Moduls = new SelectList(modulos, "idPK", "nombre"); //ese listado se guarda en esta "vista" TempData.Keep(); //se le solicita mantener los datos nuevamente return(PartialView("ModulsPartial")); //se devuelve estos valores obtenidos a la vista parcial }