powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
24 сообщений из 24, страница 1 из 1
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801475
Fantastick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например:
О нас Новости
Трампарам | 01.04.2010
Мы такие все хорошие | Шутка дня ...

Контроллер на эту страницу вот так отрабатывает:
Код: c#
1.
2.
3.
4.
5.
6.
    public ActionResult Index()
    {
      ViewBag.Message = "Фотостудия Eve приветствует Вас!";

      return View(db.News.ToList());
    }



В модели идет обработка:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 @foreach (var item in Model)
  { 
    <tr>
      <td>
        @Html.DisplayFor(modelItem => item.newsDate)
      </td>
        <td>
        @Html.DisplayFor(modelItem => item.newsContent)
      </td>
    </tr>
  }



Но тут я получаю только новости, а как мне еще другой контент передать.
Заранее спасибо всем откликнувшимся, ногами не бить первый день asp|net
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801546
just_for_sql_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fantastick,

Простейший способ - сделать ViewModel, заполнить всеми нужными данными, и передавать во вьюху ее, а не сущности
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801549
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
ViewBag.OtherData = "другие данные:)), хоть класс, хоть структуру";



ДопустИм вариант создания отдельной ViewModel для данной вьюхи и передавать ее.
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801585
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYS,

ViewBag в топку, only model!
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801645
Fantastick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deza,

А как через model?
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801669
Fantastick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deza,

И почему в топку?
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801749
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FantastickDeza,

А как через model?

смотреть
http://www.techdays.ru/videos/ASP.NET

начать с Тренинг ASP.NET MVC 3 - Модуль 1. Знакомство с MVC 3

и до
Тренинг ASP.NET MVC 3 - Модуль 7. Внедрение зависимостей

ну и остальные тоже интересные
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801758
Fantastick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deza,

За ссылки огромное спасибо, но вот в данной ситуации как делать? есть ли простое решение или гиперболойд инженера Гарина реализовывать?
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37801769
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaSanSYS,

ViewBag в топку, only model!
Аргументируйте, пожалуйста
ViewBag для передачи какой-то мелкой доп. инфы считаю приемлемым методом (только не в отношении структур, вы же понимаете особенности работы clr с dynamic?)
Для остального, конечно же - ViewModel

http://msdn.microsoft.com/ru-ru/magazine/gg650669.aspx
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808300
Fantastick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрел я уроки, спасибо огромное.
Но то ли я плохо смотрел, то ли не освещена эта тема, но кроме как вариантов:
1. через ViewBag передать 2ую сущность
2. передать весь контекст в представление

Хорошо ли так делать или как это можно сделать по другому?
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808358
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSDezaSanSYS,

ViewBag в топку, only model!
Аргументируйте, пожалуйста
ViewBag для передачи какой-то мелкой доп. инфы считаю приемлемым методом (только не в отношении структур, вы же понимаете особенности работы clr с dynamic?)
Для остального, конечно же - ViewModel

http://msdn.microsoft.com/ru-ru/magazine/gg650669.aspx

SanSYS, он прав. ViewBag в топку. Только модель.

Код: c#
1.
2.
3.
4.
5.
class MyClass
{
    public A PropertyA { get; set; }
    public B PropertyB { get; set; }
}
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808434
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, ок, а в случае если вывести данные необходимо где-то вне возвращаемой вьюшки? (ajax не обсуждаем)
к примеру в лейауте? - мс в своем стандартном шаблоне использует для вывода заголовка примерно такое: ViewBag.Title, да и Фриман с Сандерсеном не брезгуют

А учитывая, что ViewBag это по сути тупо свойство с отсылкой/оберткой над ViewData, то оно добавляет только удобства в использовании

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
         public dynamic ViewBag {
            get {
                if (_dynamicViewData == null) {
                    _dynamicViewData = new DynamicViewDataDictionary(() => ViewData);
                }
                return _dynamicViewData;
            }
        }



Сегодня я начал собирать один новенький проект, пока создано лишь 11 вьюх, ViewBag использован только для передачи Title, вряд ли заюзаю его еще для чего нить, по вполне понятным причинам

Не подумай что я утверждаю что использовать ViewBag везде и всегда можно, но есть случаи когда вполне приемлемо, главное не переусердствовать, а то потом руки отрывать тем кто использовал viewbag налево и направо

Кстати - при биндинге эдиторов, вроде наличие данных для биндинга сначала проверяются во ViewBag, после во ViewData, а потом уже в пропертях модели (но это при использовании синтаксиса типа Html.DropDownList("DataKey"), кажется)
Но это я точно не знаю, т.к. с фреймворком MVC почти незнаком
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808453
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYS, ViewBag.Title и Model, разве не чувствуете разницы? :)
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808460
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fantastick,
что то типа такого
Код: 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.
public ActionResult Details(int? id, string topics, string sec)
        {
            var searchModel = new SearchModel
                                  {
                                      ColsPerPageM = colsPerPage,
                                      QueryType = queryType,
                                      ResultModels =
                                          SearchResultHelper.GreateSearchResult(queryType, colsPerPage,
                                                                                currentPage*itemsPerPage, itemsPerPage,
                                                                                res, votePermissions, currentPage),
                                      Pages =
                                          PagerHelper.CreatePageSearch(itemsPerPage,
                                                                       Convert.ToInt32(res.GetMaxAvailableItemsCount()),
                                                                       this.Url, p == null ? 0 : p.Value, query,
                                                                       queryType),
                                      
                                      Query = q,
                                      Navigation = new NavigationModel
                                                       {
                                                           Menu =
                                                               MainMenuhelper.CreateSearchMenu(q, queryType, currentPage,
                                                                                               this.Url),
                                                           IsAjax = true
                                                       },
                                      IsPost = false
                                  };
            ViewData.Model = searchModel ;
            return this.View();
        }
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808536
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DezaFantastick,
что то типа такого
Код: c#
1.
2.
3.
            ViewData.Model = searchModel ;
            return this.View();
        }



Код: c#
1.
2.
3.
            //  ViewData.Model = searchModel; это на кой?
            return View(searchModel);
        }
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808650
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSМСУ, ок, а в случае если вывести данные необходимо где-то вне возвращаемой вьюшки? (ajax не обсуждаем)
Без разницы. Используем всегда модель.
SanSYSНо это я точно не знаю, т.к. с фреймворком MVC почти незнаком
А почему тогда советы даете? :)
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808765
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSanSYSМСУ, ок, а в случае если вывести данные необходимо где-то вне возвращаемой вьюшки? (ajax не обсуждаем)
Без разницы. Используем всегда модельНу.. Не совсем без разницы, вот смотри:
1. есть _layout
2. есть типизированная вьюха, использует _layout для рендера
3. передаем модель { Object SomeData, String Title }
4. Каким образом использовать в _layout Model.Title?

Варианты:
1. @section - хороший вариант при условиях: наличия секции, вьюха непосредственно юзает _layout
2. @ViewData.Model.Title - ViewData.Model то ли Object, то ли dynamic, нужны лишние проверки
3. при использовании ajax - понятно, все просто, но нужно писать клиентский лишний код хотя бы раз
4. ViewBag.Title - относительно неплохой вариант, учитывая что при отсутствии свойства нет даже эксепшенов при необработанном выводе (хотя в этом есть большая проблема, посему и не использую, + мне чаще удобнее юзать модели)

МСУSanSYSНо это я точно не знаю, т.к. с фреймворком MVC почти незнаком
А почему тогда советы даете? :)Потому что полагаю, что я могу дать советы на простые вопросы, потому и даю
Да и к тому же - не мало интересного можно узнать :)
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37808793
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViewBag, ViewData следует использовать для вывода дополнительной (служебной) информации: заголовок страницы, сообщения, индекс текущей страницы в пейджинге. Для того, что нужно ТСу - ViewModel.
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37809211
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYS4. Каким образом использовать в _layout Model.Title?

Как вариант, можно сделать MasterViewModel, и наследовать от нее остальные. // PageViewModel : MasterViewMode
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37809272
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYS, я уже тыщу раз писал о модели представления. Собственно, это и есть бест-практис для MVC - отдаем модель представления, которая в себя включает как и модель, так и вспомогательные классы для формирования представления.
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37809300
МСУ .. так и вспомогательные классы для формирования представления.

А "вспомогательные классы для формирования представления" это что? Контролы что-ли? :]
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37809314
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон
Код: c#
1.
2.
3.
            //  ViewData.Model = searchModel; это на кой?
            return View(searchModel);
        }



Привычка:)
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37809893
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSanSYS, я уже тыщу раз писал о модели представления. Собственно, это и есть бест-практис для MVC - отдаем модель представления, которая в себя включает как и модель, так и вспомогательные классы для формирования представления.
Это бест-практис, однозначно ты прав, как бы в этом отношении даже не собираюсь дискуссировать )
...
Рейтинг: 0 / 0
MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
    #37810229
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSЭто бест-практис, однозначно ты прав, как бы в этом отношении даже не собираюсь дискуссировать )
Тогда спич можно закрывать :)
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC - Как получить 2 сущности из контроллера и заполнить их на странице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]