Поддерживать DropdownList Выбранное значение в mvc

Вопрос:

У меня есть DropDown и в selcted indexchanged он принудительно возвращает и привязывает таблицу, но после обратной передачи он не поддерживал состояние.

мой взгляд

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

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

и мой контроллер

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();
}

и моя функция javascript:

   function SelectedIndexChanged() {

document.demoForm.submit();

}

Кто-нибудь подскажет мне, где я делаю неправильно

Ответ №1

Действие вашего контроллера не имеет параметров… Для получения значения, выбранного пользователем, вам потребуется хотя бы один параметр в действии контроллера.

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

Вероятно, будет лучше иметь метод, чтобы показать представление, когда запрос является HTTP GET, а другой – обработать форму submit (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
}

Оцените статью
TechArks.Ru
Добавить комментарий