Хорошо, я очень новичок в MVC, так что медведь со мной, если я задаю нелепый простой вопрос. Я пытаюсь разработать проект в MVC, где определенные элементы управления в представлении сохраняют состояние, но на самом деле не являются частью модели. Я хочу отображать графики Asp.net и xslt на странице, основанной на содержимом различных выпадающих списков. Данные для них взяты из модели, но dropdownmenu будет постоянным, и поэтому, когда вы делаете сообщение в выбранных вами вариантах, оно сохраняет выбор Dropdownlist и отображает их, как это было бы при обратной передаче в Asp.net 2.0?Сохранение состояния в немодельных элементах управления - MVC
ответ
Если вы используете стандартные хелпер 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"])
Один из способов я решали это в прошлом, делаю запрос Ajax на DROPDOWNLIST события изменения (сериализовать форму с выпадающим списком выбранные значения или просто передать параметры в строке запроса). Сервер (действия контроллера) принимает этот запрос и возвращает частичный вид с содержимым. Клиент принимает этот контент и место (заменяет) в некоторый div.
Таким образом, мне никогда не приходилось думать о выбранном элементе dropdownlist, потому что я никогда не перезагружаю всю страницу.
Спасибо, это то, что я искал :) – Israfel
Спасибо, мой первый принятый ответ! :) Рад, что я мог помочь! –