Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 4
Регистрация: 06.05.2014
Сообщений: 167
1

Как в строго-типизированном View сделать DropDownListFor из другой модели?

16.12.2014, 12:55. Показов 1677. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть форма ввода данных в таблицу. Как сделать чтобы в строго-типизированном View сделать выпадающий список с данными из другой таблицы? Например, на форме ввода нового сотрудника сделать выпадающий список отделов предприятия. Все отделы предприятия хранятся в отдельной таблице, а в таблице сотрудника используется только ID.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2014, 12:55
Ответы с готовыми решениями:

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

Как сделать невидимым один из view в предыдущем item of recycler view
Здравствуйте ! Как сделать чтобы при клике на кнопку в элементе рисайклеравью в предыдущем...

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

Как сделать DropDownListFor чтобы при создании товара можно было выбрать категорию с списка
Всем привет, есть модели: Category с полями ID, Name; Product с полями ID, Name, CategoryID; И...

3
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,705
16.12.2014, 13:26 2
Цитата Сообщение от GaS_597 Посмотреть сообщение
таблице, а в таблице сотрудника используется только ID.
Предварительно в контроллере запросите список отделов предприятия И сохраните во ViewBag.
HttpGet:
C#
1
2
3
4
5
6
7
8
public ActionResult AddEmployee()
{
   var departments = GetFromSomewhere().ToList();
    ViewBag.Departments  = new SelectList(departments,  "DepartmentId", "DepartmentName",departments.First());
   var view = new Viewmodel(); 
  //...
  return View(view);
}
А затем просто во вьюхе:
C#
1
@Html.DropDownList("DepartmentId",(ViewBag.Departments as SelectList)
Добавлено через 5 минут
В модели, как понял, свойство DepartmentId у вас есть.

Добавлено через 10 минут
Ну а если DropdownListFor, то там просто с лямбда-выражением.
1
1 / 1 / 4
Регистрация: 06.05.2014
Сообщений: 167
17.12.2014, 03:45  [ТС] 3
А если у меня таких выпадающих списков несколько? Как тогда быть? Есть таблица Person, где существуют поля Department, Office, Employer. В таблице Person используются только ID для других таблиц. Может я изначально неправильно сделал модель данных... В Person я указал Position, Department, Office и Employer, потому что запросом выбираю все данные по всем сотрудникам. И для простого отображения данных это работает.
Но хочу понять как работать с DropDownListFor<> в строго-типизированном представлении, где нужно в выпадающем списке отразить данные из другой таблицы, то есть буквально нужно выдать список наименований, а вставить ID.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Person
    {
        public int ID { get; set; }
        public string TabelNum { get; set; }
        public string Name { get; set; }
        public string Surname { get; set; }
        public string MiddleName { get; set; }
        public string Status { get; set; }
        public string MaritalStatus { get; set; }
        public string Sex { get; set; }
        public string Birthday { get; set; }
        public string PassportNum { get; set; }
        public string ExpiryDate { get; set; }
        public string Address { get; set; }
        public string Town { get; set; }
        public string Nationality { get; set; }
        public string Phone { get; set; }
        public string MobilePhone { get; set; }
        public string Position { get; set; }
        public string Department { get; set; }
        public string Office { get; set; }
        public string Employer { get; set; }
        public int Pos_num { get; set; }
        public int DepartmentID { get; set; }
        public int OfficeID { get; set; }
        public int EmployerID { get; set; }
        public string Comment { get; set; }
    }
 
public class Position
    {
        public int ID { get; set; }
        public string Position1 { get; set; }
        public string Comment { get; set; }
    }
 
 public class Department
    {
        public int ID { get; set; }
        public string Department1 { get; set; }
    }
 
public class Employer
    {
        public int ID { get; set; }
        public string Employer1 { get; set; }
    }
0
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,705
17.12.2014, 04:44 4
Цитата Сообщение от GaS_597 Посмотреть сообщение
А если у меня таких выпадающих списков несколько?
Больше списков, больше данных запрашивать. Можно пробовать кешировать где-нибудь именно служебные данные (ваши списки), а не вытаскивать из бд - если они уж очень часто используются.
Но из бд, для начала, тоже пойдет. На крайний случай, можно провести профилировку приложения. имхо
0
17.12.2014, 04:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2014, 04:44
Помогаю со студенческими работами здесь

Как сделать сделать ввод чисел в Input формы строго по нужному диапазону?
Здравствуйте уважаемые Коллеги! У меня есть переменная JS с количеством товаров на складе var...

Как передать из одного контроллера объект модели в строго типизированное представление другого контроллера
Есть строго типизированное представление в контроллере Main, в методе ListOrders. Как в него можно...

Как сделать сортировку в типизированном файле?
как сделать сортировку в типизированном файле? Можно ли ее сделать примерно так как пытался...

как в типизированном файле сделать нормальный вывод
program Project4; {$APPTYPE CONSOLE} uses SysUtils; Var FileName : string; {строка,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru