2009-11-06 1 views
0

Хорошо, я очень новичок в MVC, так что медведь со мной, если я задаю нелепый простой вопрос. Я пытаюсь разработать проект в MVC, где определенные элементы управления в представлении сохраняют состояние, но на самом деле не являются частью модели. Я хочу отображать графики Asp.net и xslt на странице, основанной на содержимом различных выпадающих списков. Данные для них взяты из модели, но dropdownmenu будет постоянным, и поэтому, когда вы делаете сообщение в выбранных вами вариантах, оно сохраняет выбор Dropdownlist и отображает их, как это было бы при обратной передаче в Asp.net 2.0?Сохранение состояния в немодельных элементах управления - MVC

ответ

0

Если вы используете стандартные хелпер Html, что он может получить довольно сложен, как вы будете строить свой собственный SelectListItem класса пройти в поле зрения и сказать управление, который выбран один и вытолкнуть его в ViewData:

List<SelectListItem> items = new List<SelectListItem>(); 
    items.Add(new SelectListItem 
    { 
     Text = "Option1", 
     Value = "1", 
     Selected = (Request["dropdown"] == "Option1") 
    }); 
    items.Add(new SelectListItem 
    { 
     Text = "Option2", 
     Value = "2", 
     Selected = (Request["dropdown"] == "Option2") 
    }); 
    items.Add(new SelectListItem 
    { 
     Text = "Option3", 
     Value = "3", 
     Selected = (Request["dropdown"] == "Option3") 
    }); 

ViewData["items"]; 

Вы можете затем сделать это в вашем представлении следующим образом:

<%= Html.DropdownList("Dropdown1", (IEnumerable<SelectListItem>)ViewData["items"]) 
+0

Спасибо, это то, что я искал :) – Israfel

+0

Спасибо, мой первый принятый ответ! :) Рад, что я мог помочь! –

0

Один из способов я решали это в прошлом, делаю запрос Ajax на DROPDOWNLIST события изменения (сериализовать форму с выпадающим списком выбранные значения или просто передать параметры в строке запроса). Сервер (действия контроллера) принимает этот запрос и возвращает частичный вид с содержимым. Клиент принимает этот контент и место (заменяет) в некоторый div.

Таким образом, мне никогда не приходилось думать о выбранном элементе dropdownlist, потому что я никогда не перезагружаю всю страницу.