2014-07-23 9 views
0

J'ai un DropDown et sur l'index selcted l'a forcée avec la publication et Binds une table, mais après la publication, il n'a pas maintenu l'état.Maintenir DropdownList La valeur sélectionnée dans mvc

mon avis est

@Html.DropDownListFor(m=>m.fkSubMenuID, (IEnumerable<SelectListItem>)ViewBag.list,"Select" 

,new { id = "ddlSubMenu",onchange="SelectedIndexChanged()" }) 

et mon contrôleur est

public ActionResult ChildMenuOfSubMenu() 

    { 
     if (Session["DDlId"] == null || Convert.ToInt32(Session["DDlId"]) == 0) 
     { 
      UlrikenEntities dc = new UlrikenEntities(); 
      var query = (from m in dc.ulriken_tblChildMenu 
         join sb in dc.ulriken_tblSubMenu on m.fkSubMenuID equals sb.pkSubMenuID 
         where m.Status == true && sb.fkMainMenuID == 1 
         select m).ToList(); 
      Ulriken.Models.ChildMenu ObjHomeEvents = new Models.ChildMenu(); 
      ObjHomeEvents.FormDetails = query; 
      FillDeptName(); 
      Session["DDlId"] = null; 
      return View(ObjHomeEvents); 
     } 
     else 
     { 
      Int64 id = Convert.ToInt64(Session["DDlId"]); 
      UlrikenEntities dc = new UlrikenEntities(); 
      var query = (from m in dc.ulriken_tblChildMenu 
         join sb in dc.ulriken_tblSubMenu on m.fkSubMenuID equals sb.pkSubMenuID 
         where m.Status == true && m.fkSubMenuID == id && sb.fkMainMenuID==1 
         select m).ToList(); 
      Ulriken.Models.ChildMenu ObjHomeEvents = new Models.ChildMenu(); 
      ObjHomeEvents.FormDetails = query; 
      FillDeptName(); 
      //string ddlValue= ViewData.TemplateInfo.GetFullHtmlFieldId("ddlSubMenu"); 

      Session["DDlId"] = null; 
      return View(ObjHomeEvents); 
     } 


     //return View(); 
    } 

et ma fonction javascript est:

function SelectedIndexChanged() {   

     document.demoForm.submit(); 

    } 

Quelqu'un me guide où je fais mal

+0

Montrez-nous le code de SelectedIndexChanged(). – Ksv3n

+0

function SelectedIndexChanged() { document.demoForm.submit(); } – MaxMini

+0

Par exemple, si je sélectionne la troisième valeur de la liste déroulante après la publication, elle passe à la première. – MaxMini

Répondre

0

Votre contro L'action ller n'a pas de paramètres ... Vous avez besoin d'au moins un paramètre dans l'action du contrôleur pour récupérer la valeur sélectionnée par l'utilisateur.

public ActionResult ChildMenuOfSubMenu(int fkSubMenuID) 
{ 
    // .... 
} 

Probablement mieux d'avoir une méthode pour afficher la vue lorsque la requête est une requête HTTP GET et l'autre pour gérer le formulaire soumettre (HTTP POST):

public ActionResult ChildMenuOfSubMenu() 
{ 
    // This method gets called in a HTTP GET 
} 

[HttpPost] 
public ActionResult ChildMenuOfSubMenu(int fkSubMenuID) 
{ 
    // This one gets called when user performs the submit to the form 
} 
Questions connexes