Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
valdi-korot
Заблокирован
1

Как вывести содержимое двух таблиц на одно представление

12.11.2013, 22:28. Просмотров 3735. Ответов 11
Метки нет (Все метки)

Как вывести содержимое двух таблиц на одно представление, из одной я вывожу след. образом

контроллер
C#
1
2
3
4
5
  public ActionResult Index()
        {
            ViewData.Model = (new ClaasModelDataContext()).Группа.ToList();
            return View();
        }
представление

HTML5
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
@model IEnumerable<MvcApplication6.Models.Группа >
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <select>
    
    @foreach(var item in ViewData.Model)
    {
      <option>@Html.DisplayFor(modelItem=> item.Группа1 ) </option>
    }
    </select>
 
</body>
</html>
2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 22:28
Ответы с готовыми решениями:

Передача двух моделей в одно представление
Всем привет! Возможно ли как-то реализовать такую конструкцию: @model MyModel1 @model MyModel2

Вывести данные из всех таблиц в представление
Всем привет! У меня такая проблема. Я хочу создать что-то вроде отчета по выводу всех заказов из...

Вывести данные из всех таблиц в представление
Всем привет! У меня такая проблема. Я хочу создать что-то вроде отчета по выводу всех заказов из...

Как вывести содержимое поля из двух таблиц?
Приветствую Всех гуру и начинающих вопрос мой думаю простой и не новинка но сам додумать не могу,...

Как сравнить содержимое двух таблиц?
Здравствуйте, уважаемые форумчане! Подскажите, пожалуйста, как сравнить содержимое двух таблиц в...

11
IronD
2 / 2 / 2
Регистрация: 22.11.2009
Сообщений: 24
13.11.2013, 00:16 2
В MVC есть динамический объект ViewBag, в принципе можно через него:

C#
1
2
3
4
5
6
  public ActionResult Index()
        {
            ViewData.Model = (new ClaasModelDataContext()).Группа.ToList();
            ViewBag.AnotherModel = //какие-то данные
            return View();
        }
HTML5
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
@model IEnumerable<MvcApplication6.Models.Группа >
 
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <select>
    
    @foreach(var item in ViewData.Model)
    {
      <option>@Html.DisplayFor(modelItem=> item.Группа1 ) </option>
    }
    </select>
 
<select>
    
    @foreach(var item in ViewBag.AnotherModel)
    {
      <option>@Html.DisplayFor(modelItem=> item.Name ) </option>
    }
    </select>
 
</body>
</html>
Обратите внимание, что во второй раз пробегается по коллекции из ViewBag.AnotherModel, поэтому вызываются поля которые там есть. Я для примера добавил item.Name
0
valdi-korot
Заблокирован
13.11.2013, 03:50  [ТС] 3
уже пробовал, не работает
2
lifeact
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 432
13.11.2013, 09:23 4
где то читал, что использовать "ViewData" плохая практика, особенно в больших проектах. Нужно через модели + чтоб представления были строго типизированные.... Вот у меня вопрос как передать строго типизированному представлению две модели?
0
13.11.2013, 09:23
valdi-korot
Заблокирован
13.11.2013, 13:06  [ТС] 5
Я и делаю через строго типизированное представление, но передать две модели я не смог.
1
lifeact
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 432
13.11.2013, 13:29 6
Цитата Сообщение от valdi-korot Посмотреть сообщение
Я и делаю через строго типизированное представление, но передать две модели я не смог.
так модель сразу давай во вью, зачем ViewData?

C#
1
2
3
4
5
        public ActionResult UserTickets()
        {            
            IEnumerable<Tickets> tickets = ticketsManager.GetTicketsByUser(CurrentUser.id);
            return PartialView("_UserTickets", tickets);
        }

но передать две модели я не смог
---
Мне говорили можно передать на вью объект, в котором будут обе модели, но на практике этого не видел
0
valdi-korot
Заблокирован
13.11.2013, 13:43  [ТС] 7
Цитата Сообщение от lifeact Посмотреть сообщение
так модель сразу давай во вью, зачем ViewData?
разницы почти нет..
2
lifeact
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 432
13.11.2013, 13:52 8
Цитата Сообщение от valdi-korot Посмотреть сообщение
разницы почти нет..

12 лучших практик ASP.NET MVC

...

4. Скажите «НЕТ» магическим строкам
Никогда не используйте ViewData[“key”], но всегда создавайте ViewModel для каждого View и используйте строготипизированные представления ViewPage.

...
1
valdi-korot
Заблокирован
13.11.2013, 14:21  [ТС] 9
Все же я нашел выход.. Нужно создать класс который объединяет в себе нужные модели
2
lifeact
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 432
13.11.2013, 15:01 10
Цитата Сообщение от valdi-korot Посмотреть сообщение
Все же я нашел выход.. Нужно создать класс который объединяет в себе нужные модели
у меня тоже так:

C#
1
2
3
4
5
6
7
 public class Tickets
    {
        public int id { get; set; }
        public int User_id { get; set; }            
        public List<TicketTexts> ticketTextsLst { get; set; }
     .....
    }
А покажи свой вариант, чтобы законченный ответ был...
0
valdi-korot
Заблокирован
13.11.2013, 15:52  [ТС] 11
Цитата Сообщение от lifeact Посмотреть сообщение
А покажи свой вариант, чтобы законченный ответ был...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 public class ModelBase
    {
        public System.Collections.Generic.List<Расписание> rasp { set; get; }
        public System.Collections.Generic.List<Группа> group { set; get; }
        public System.Collections.Generic.List<Расписание> viewRasp { set; get; }
        public string SelectGroup { set; get; }
        public ModelBase()
        {
        }
        public ModelBase(System.Collections.Generic.List<Расписание> r, System.Collections.Generic.List<Группа> g)
        {
            rasp = r;
            group = g;
            SelectGroup = " ";
        }
}
1
valdi-korot
Заблокирован
23.11.2013, 23:47  [ТС] 12
нашел и другой выход
0
23.11.2013, 23:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2013, 23:47

Создать представление в MySQL из двух таблиц
У меня есть таблица, которая используется, для авторизации пользователей на почтовом сервере...

Представление в DataGridView данных из двух связанных таблиц
Здравствуйте. Есть DataSet, в нем две связанных таблицы, например таблица Order, в которой есть...

Из двух таблиц одно поле по условию
Есть 3 таблицы Физики(Фамилия, Имя, Отчество, Контрагенты_код) Юрики(Наименование,Контрагенты_код)...


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

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

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