Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Warchiefs
2 / 2 / 0
Регистрация: 28.11.2014
Сообщений: 18
1

DropDownListFor и ListBox - получить значения выделенных элементов

25.05.2015, 01:40. Просмотров 1014. Ответов 2
Метки нет (Все метки)

Получение список, для заполнения DDL и ListBox в контроллере

C#
1
2
3
4
5
6
7
8
9
[HttpGet]
        public ActionResult CreateClimbing()
        {
            MultiSelectList climbers = new MultiSelectList(db.Climbers, "Id", "Name");
            ViewBag.Climbers = climbers;
            SelectList mountains = new SelectList(db.Mountains, "Id", "Name");
            ViewBag.Mountains = mountains;
            return View();
        }
Представление:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="form-group">
        @Html.LabelFor(m => m.MountainId, "Выберите гору")
        <br />
        @Html.DropDownList("Mount", ViewBag.Mountains as SelectList, new {@class="form-control"})
        @Html.ValidationMessageFor(m => m.MountainId)
    </div>
    
    <div class="form-group">
        <label>Выберите альпинистов</label>
        <br />
        @Html.ListBox("Climbers", ViewBag.Climbers as MultiSelectList, new { @class = "form-control", style="height: 100px" })
        @Html.ValidationMessageFor(m => m.ClimberId)
    </div>
 
 <button type="submit" class="btn btn-primary">Добавить</button>
Контроллер обработки данных из формы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[HttpPost]
        public ActionResult _CreateClimbing([Bind(Include = "Id,StartDate,EndDate")]Climbing climbing, string Mount, Climber[] Climbers) 
        {
            if (ModelState.IsValid)
            {
                climbing.MountainId = db.Mountains.Where(m => m.Name == Mount).Select(m => m.Id).First();
                foreach (var c in Climbers)
                {
                    climbing.ClimberId = c.Id;
                    db.Climbings.Add(climbing);
                    db.SaveChanges();
                    return View("Climbings");
                }
            }
            return View("CreateClimbing");
        }
Ошибка:

An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code

Additional information: There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'Mount'.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2015, 01:40
Ответы с готовыми решениями:

Выбор элемента в 1 DropDownListFor должен изменить список во 2 DropDownListFor
Добрый день! Плиз, подскажите. У меня есть два списка, как сделать так, чтобы выбор элемента в...

DropDownListFor не возвращает значения
Люююди помогите,а ? Сутки сижу и не могу решить проблему с этим адским элементом, интернет не...

Вывести Null значения из БД в DropDownListFor
Здравствуйте такой вопрос, мне нужно вывести в DropdownListFor, которые хранятся в базе, но...

Передача значения из View (DropDownListFor) в модель
Есть 2 модели public class Country { public Guid Id { get; set; } ...

Вывод значения адреса почты в DropDownListFor, введённого в предыдущей форме
В моём приложении на странице ввода информации о читателе я ввожу данные о человеке (имя, адрес...

2
РусланОс
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 5
25.05.2015, 10:51 2
в методе POST, если у вас возникает ошибка валидации, и обратно вызывается то же самое представление CreateClimbing, то вам также надо передавать все списки, как в методе GET. А так представление их не видит
0
Warchiefs
2 / 2 / 0
Регистрация: 28.11.2014
Сообщений: 18
25.05.2015, 19:46  [ТС] 3
РусланОс, можно пример пожалуйста?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2015, 19:46

ListBox, получить id выделенных элементов
Суть такова listBox1.SelectionMode = SelectionMode.MultiExtended; Как получить индексы...

получить список выделенных элементов из ListBox
как получить список выделенных элементов из ListBox при SelectionMode=&quot;Extended&quot;?

Получить коллекцию выделенных элементов в ListBox
Доброго времени суток! Совсем недавно начал изучение sharp'a,и сразу же возникло множество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru