powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хочу через ViewBag передать данные во View, но просят привязать источник данных.
25 сообщений из 80, страница 3 из 4
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38540928
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПростите, что вмешиваюсь в ваш высоконаучный спор. А что мешает сделать отдельный класс для всех этих списков и цеплять его к модели как свойство?

SelectListItem же. не надо его лепить к модели. ни к чему. модель это модель.

что касается MVC. если пытаться люто-бешено следовать концепции всё при всё запихать в модель, что будет отображено во вью, тогда надо абсолютно в каждую модель затолкать пользователя, имя которого надо рисовать в шапке, типа "привет, Вася Пупкин!". марзм? естественно.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38540946
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt кладётся он во вьюбэг не просто по какому-то выдуманному ключу, а по ключу поля, к которому привязывается. это здесь тоже можно обойтись без магических строк и получать из мета. ниче не сломается, и тестится великолепно.
Дык вьюбэг, он уже весь магический )
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38540964
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
зашем? @Html.EditorFor(x => x.Prop)

в шаблоне для Prop лежит @Html.DropDownList("")

и волки целы и овцы сыты
и шаблон на каждый чих )
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38540966
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе ной, а сконцентрируйся на проблеме лучше. Ныть - в детский сад.

тебе показалось

МСУК тому, что вью модель не нужно тестировать?

да. там нет логики и не должно быть, там готовые данные на отображение

МСУИ почему списки для комбобоксов не типизированы? Чем они такие особенные? Есть еще и гриды master-detail-detail-..., чеклистбоксы, n-колоночные комбобоксы, шедулеры, и прочая списочная хрень. Ты всё это тоже предлагаешь выносить в этот нетипизированный кал?
потому что спор начался с @Html.DropDownList("CategorYId"), где тут типизация. Я это не предлагал, мое предложение было что списки для вью можно прокинуть через вьюбаг и не более, так что не надо. Потом я согласил что это составляющая вьюмодели. Но к примеру если каскадные списки получится вьюмодель без списков, только с ключами.

МСУТестировать представление тоже нужно, и логика в нем тоже есть. Банальные даже ифы для генерации или сокрытия контролов. Да и речь не только в тестировании вью-модели, как ты не можешь понять этого.

покажи мне как ты покроешь тестами вью с логикой.

МСУНе нужно судить о неправильности на основе своего скудного опыта. Пара десятков комбобоксов - это мелочи

поверю, потому что не сталкивался с такими дикими интерфейсами.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38540970
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

зашем? @Html.EditorFor(x => x.Prop)

в шаблоне для Prop лежит @Html.DropDownList("")

и волки целы и овцы сыты[/quot]
Какой бред. Зачем мне эта петрушка в залипушками в проекте? Это не проект, это какая-то свалка отходов. И всё ради чего, ради банальной отрисовки комбобокса? Завязывай уже с наркотой :)

hVosttпри чем тут mvvm-щики. там вообще другой подход. совершенно другой. и тоже, кстати, в модель всё подрят не пихают. разбивают на разные модели с наименьшей зависимостью друг от друга.
Там точно такой же подход, принципиально ничем не отличающийся. Только маппинги более мощные на XAML с кучами фишек и вкусностей. Идея такая же и стара как мир, инициализировать модель представления, намапить на вью, снять измененные данные с модели представления и отправить их в лес. Те же яйца, только приправленные немного другой спецификой технологии. Ты бы это понял, если имел кругозор.

hVosttМСУТипизация - это демагогия? Ну могу посоветовать только убиться после таких слов :)
если ты не понял, я против типизации ничего не имеют против. только за. SelectList офигенно типизирован для любой коллекции ключ-значение. кладётся он во вьюбэг не просто по какому-то выдуманному ключу, а по ключу поля, к которому привязывается. это здесь тоже можно обойтись без магических строк и получать из мета. ниче не сломается, и тестится великолепно.
Постой. Только что ты рвал горло и вопил о том, что

Код: c#
1.
@Html.DropDownList("CategoryId")



наше всё. Теперь ты говоришь, что у тебя всё типизированно и здорово. Какая типизация может быть в том, что я написал выше? Или ты пытаешься как-то выкрутиться и придумываешь всё новые и новые схемы самонаёба в виде @Html.EditorFor(x => x.Prop)?

Я тебя не понимаю, ты скачешь как кузнечик по кустам и не можешь определиться с истиной. Может хорош писать гавнокод и пора включать голову?

В моём варианте никаких дополнительных танцев с бубнами не нужно, имеем честную модель, имеем прозрачный вью, имеем линейную логику инициализации модели. Всё настолько просто, насколько это можно себе представить. Зачем мне тут атрибуты, фильтры, шаблоны с Prop, волки и овцы?
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38540992
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuтебе показалось
Ок, пусть будет так.

handmadeFromRuМСУК тому, что вью модель не нужно тестировать?

да. там нет логики и не должно быть, там готовые данные на отображение
В любой более или менее сложной системе во вью есть всегда логика. Начиная от валидаторов (WebForms), javascript и т.д., и кончая навороченным умным разором с его @if и @else для генерации html. Особенно разор очень удобен для логики генерации контролов на основе прав пользователя.

handmadeFromRuмое предложение было что списки для вью можно прокинуть через вьюбаг и не более, так что не надо. Потом я согласил что это составляющая вьюмодели. Но к примеру если каскадные списки получится вьюмодель без списков, только с ключами.
Какая разница, какие списки, каскадные или феерические, с лампочками и рюшечками или с коровьим выменем. UI может быть самым разнообразным, а его модель неизменна. В том весь и цимус, что если модель содержит все данные для работы, UI можно строить любой без вмешательства в серверный код. Кстати, в этом же плюс и чудесного MVVM. Модель есть, она всё содержит в себе. UI меняй хоть каждый день и ни о чем не думай. Это очень удобно.

handmadeFromRuпокажи мне как ты покроешь тестами вью с логикой.
YouTube Video
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38541382
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

ох, ё - вот нафлудили :)

handmadeFromRuПафос про тимлида и увольнение зачем это писать? да может я не столь опытен и могу ошибаться, но аргументируй! а не пишите я тимлид и уволил бы.
Ответ на фразы

авторимхо согласен с hVostt, чтоб не засорять целевую модель бесполезными списками;
МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности


Ответ надоело, это в моем понимании пафос разработчика, который отвечает на вопрос - "Почему ты так делаешь" - "Надоело",
Ответный пафос - "Уволен".

Если ответ будет аргументирован и пусть аргументы не совпадают с моим пониманием (и это нормально), но человек приведет нормальные аргументы, то и реакция будет другая.
Но это лирика.

handmadeFromRuхм а зачем ложить все яйца в корзину если можно разбить на подвюьшки?

Часто это жесткое требование бизнеса, например - единое окно обслуживание клиента. Пример из жизни клиент звонит в call-центр. После идентификации клиента (автоматически на основе входящего номера или со слов клиента - не суть) открывается окно(в нашем случае View). В это замечательное View подтягивается ВСЯ инфа по клиенту - что бы оператор понимал как дальше работать с клиентом, что ему предложить, чем помочь - какие условия обслуживания, какие у него "больные" места и очем лучше с ним не говорить. Такие View у нас частенько есть и состав таких View согласуется с заказчиком до запятой.
Так что не разобъеш, в жизни простых задач бывает очень мало.
handmadeFromRuникто целевую модель не кинет во вьюбег, вы передергиваете, вьюшка типизирована, не типизированы только списки для дропдаунов. читаем внимательно.
А почему их обидели? В чем суть разных подходов к формированию вью?

handmadeFromRuтестировать представление эм зачем? там нет логики и все тривиально, или мне протестить какая верстка на выхлопе? А что кеши? или сторонние сервисы? все данные придут из бл. какие проблемы? и как это решит ваша вьюмодель то? или мы мешаем вьюмодель с модель бизнес логики?

Как это вяжется с вашим ответом
handmadeFromRueJack
в чем нормальность? прокинули коллекцию Id-Name без какой либо смысловой нагрузки? по вашему я не смогу тестами покрыть это дело?
Далее
Дело в том что вы прибил гвоздями запросы к БД в методах контроллера - если сегодня вы часть информации получаете из БД а завтра из стороннего сервиса, вы все методы перепишите (причем нескоьлко раз).

Например у вас есть метод insert (GET) и insert(POST):
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public ActionResult insert(....) {
ViewBag.Ingredient = new SelectList(db.Goods, "Id", "Name");
            ViewBag.Product = new SelectList(db.Products, "Id", "Name");
            ViewBag.Name = from a in db.Products where a.Id == id select a.Name;
            ViewBag.viewModel =
                (from il in db.IngLists
                 join p in db.Products on il.ProdId equals p.Id
                 join g in db.Goods on il.GoodId equals g.Id
                 where (il.ProdId == id) && (il.GoodId == g.Id)
                 select new IngListModel { IngListId = il.Id, ProdId = p.Id, ProdName = p.Name, IngName = g.Name, Amount = il.amount }).ToList();
            return View();

}



то в пост методе вам придется повторить все ваши выкруты для ViewBag
Код: 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.
[HttpPost]
        public ActionResult insert(........)
        {
            try
            {
                if (ModelState.IsValid)
                {
// логика проверки
                  .....
                }
            }
            .....

ViewBag.Ingredient = new SelectList(db.Goods, "Id", "Name");
            ViewBag.Product = new SelectList(db.Products, "Id", "Name");
            ViewBag.Name = from a in db.Products where a.Id == id select a.Name;
            ViewBag.viewModel =
                (from il in db.IngLists
                 join p in db.Products on il.ProdId equals p.Id
                 join g in db.Goods on il.GoodId equals g.Id
                 where (il.ProdId == id) && (il.GoodId == g.Id)
                 select new IngListModel { IngListId = il.Id, ProdId = p.Id, ProdName = p.Name, IngName = g.Name, Amount = il.amount }).ToList();
            return View();
        }



и так для update методов и других. В случае не использования ViewBag просто передадите модель во View(Model) и все.

Тут же мысль про плочение данных из разных источников - в методах контролера модель должна формироваться промежуточным слоем.
Это вообще методы модели (в концепции MVC - Модель: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать )

handmadeFromRu
eJack
Вспомогательные списки - это что?, это не свойства бизнес сущности? Приведите примеры

это нифига не свойства бизнес сущности, это свойство модели представления и не более.
Давайте пример - пока это тоьлко сотрясение воздуха.
Мой пример - категория обслуживания клиента - Базовый, Расширенный, Расширенный+, VIP, БОГ. С точки зрения физического хранения это таблица - справочник. Но для бизнеса это свойство объекта на которое завязанна логика - например тарифы, и доступные услуги (для разных категорий обслуживания они разные) а значит это часть бизнес сущности. теперь ваш вариант.

handmadeFromRu
eJack
index, insert (Get), insert(Post), update(Get), update(Post), delete (Get, Post) особенно в свете фразы -

объясните зачем мне тестить каждый экшен? зачастую бл != контролеру\экшен. я тестирую бл и не важно что у меня веб формы, асп мвц или wpf. в тестах для бл подменяю на мок-репо источник данных. может я не знаю, в силу малоопытности и вы меня обогатите знаниями зачем мне тестить представление. Мне хватает чтоб силениум протестил юзер кейсы для вьюшек.


Затем что в вашем примере вы получаете данные в каждом методе заново - в жизни получение данных и формирование модели дело далеко не тривиальное - нужно тестировать.

handmadeFromRuп.с. мне интересно что вы скажите и мне не стремно сказать,
Это правильно, мне тоже не стремно оказаться не правым, не ошибается только те кто ни чего не делают!
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38541475
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКакой бред. Зачем мне эта петрушка в залипушками в проекте? Это не проект, это какая-то свалка отходов. И всё ради чего, ради банальной отрисовки комбобокса? Завязывай уже с наркотой :)

какой-то узкий и однобокий у тебя взгляд на вещи. это обсолютно стандартные решения, нативные -- всё как ты любишь

МСУТолько маппинги более мощные на XAML с кучами фишек и вкусностей.

опять 25. при чём же тут твой XAML? MVVM это паттерн. что там и как делается в XAML по барабану вообще. паттерн MVVM более общий, и применяется в том числе при разработке клиентского JavaScript приложения, где XAML-ом и его отходами даже не пахнет.

МСУнаше всё. Теперь ты говоришь, что у тебя всё типизированно и здорово. Какая типизация может быть в том, что я написал выше?

естественно всё типизировано. шаблоны для EditorFor -- стандартное решение, предложенное вендором и повсеместно используемое. и ещё пока ни один кролик не пострадал. я не понимаю с чем ты споришь. хочешь сделать заявление по поводу того, что ASP.NET MVC спроектировала команда мудаков? и нада же, приделали мерзкий ViewBag, дибильные Editor/Display шаблоны, вот же мерзкие хоббитцы

МСУЯ тебя не понимаю, ты скачешь как кузнечик по кустам и не можешь определиться с истиной. Может хорош писать гавнокод и пора включать голову?

вот именно я включаю голову, и стараюсь использовать инструмент так, как его задумывали. а ты же ушёл с головой в теорию. и вместо того, чтобы решать задачи, решаешь как уложить в теоретические рамки, которые сам же для себя и воздвиг.

МСУВ моём варианте никаких дополнительных танцев с бубнами не нужно, имеем честную модель, имеем прозрачный вью, имеем линейную логику инициализации модели. Всё настолько просто, насколько это можно себе представить. Зачем мне тут атрибуты, фильтры, шаблоны с Prop, волки и овцы?

тебе хз. но вообще это стандартные инструменты, заложенные изначально и развивающиеся до сих пор. если бы эти штуки были бы неудачным решением, отсохло бы ещё на 2-ой версии. просто ты не умеешь ASP.NET MVC готовить.

ты применяешь подход аналогичный в XAML, где может ты и плаваешь как рыба в воде. но ASP.NET MVC здесь вполне уместно применять то, что было предложено разработчиками. по большей части. с чем ты споришь, непонятно
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38541484
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJackОтвет надоело, это в моем понимании пафос разработчика, который отвечает на вопрос - "Почему ты так делаешь" - "Надоело",
Ответный пафос - "Уволен".

как отличить хорошего админа от плохого? хороший весь рабочий день по большей части балдеет, плохой постоянно пашет, сетку понимаешь чинит.

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

"надоело" -- это то, что программиста делает программистом. а за "уволен", пожизненный ярлык "самодур" без навыков самостоятельного мышления. слишком много умных книжек видемо начитались. эх....
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38541495
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
...
вот ещё, подумалось, OWIN тогда получается вообще какая-то фигня, там же всё через словари и ключи организовано. никакой типизации! в топку! разрабов на костёр!
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38541648
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttкакой-то узкий и однобокий у тебя взгляд на вещи. это обсолютно стандартные решения, нативные -- всё как ты любишь
Так никто и не говорит про нестандартность. Нетипизированная DataTable тоже нативщина, но использовать её взамен человеческих ORM есть зло (отдельные случаи не в счет, когда схема данных динамична и типизация идет лесом). Даже имея в руках стандартную лопату можно сломать себе ногу. У тебя как-раз именно такой случай.

hVosttопять 25. при чём же тут твой XAML? MVVM это паттерн. что там и как делается в XAML по барабану вообще. паттерн MVVM более общий, и применяется в том числе при разработке клиентского JavaScript приложения, где XAML-ом и его отходами даже не пахнет.
Что значит причем? Я же тебе объяснил, я хочу использовать модель представления и в XAML морде в том числе. С минимальными переделками, если они будут. Я хочу прозрачную модель, полно описывающую представление. JS по возможностям XAML даже рядом не валялся, как-то глупо даже сравнивать это. То, что в JS можно ваять убогие MVVM залипушки на кнокауте - жалкое подобие того, что можно вытворять на XAML.

hVosttестественно всё типизировано
1. Где тут типизация? @Html.DropDownList("CategoryId")
2. У тебя модель неполная, данные в UI наполняются через какой-то левый свищ, а не через модель.
3. System.Web.Mvc.SelectList это не типизация и в модели этой фигне делать нечего.
Так где ж у тебя "всё типизировано"?

hVosttшаблоны для EditorFor -- стандартное решение, предложенное вендором и повсеместно используемое. и ещё пока ни один кролик не пострадал. я не понимаю с чем ты споришь. хочешь сделать заявление по поводу того, что ASP.NET MVC спроектировала команда мудаков? и нада же, приделали мерзкий ViewBag, дибильные Editor/Display шаблоны, вот же мерзкие хоббитцы
Я тебе уже писал, зачем мне тут шаблоны для EditorFor? Только упоротый кролик будет для комбобоксов создавать шаблоны, создавать отдельные атрибуты, прикручивать их к методам контроллеров. И всё ради того, чтобы наполнить комбобоксы? Это просто верх тупости

hVosttвот именно я включаю голову, и стараюсь использовать инструмент так, как его задумывали. а ты же ушёл с головой в теорию. и вместо того, чтобы решать задачи, решаешь как уложить в теоретические рамки, которые сам же для себя и воздвиг.
Ты пытаешься не использовать инструмент, как задумали, а сделать из проекта свалку тухлых отходов, разобрать которые сможет только прокаченный инопланетянен.

hVosttтебе хз. но вообще это стандартные инструменты, заложенные изначально и развивающиеся до сих пор. если бы эти штуки были бы неудачным решением, отсохло бы ещё на 2-ой версии. просто ты не умеешь ASP.NET MVC готовить.
Я повторяю, никто не говорит тебе, что это нестандартные инструменты. Тебе говорят о том, что для данной задачи эти инструменты не подходят. Абсолютно. Толковый кодер тем и хорош, что применяет правильные инструменты в той задаче, где это нужно. А не пихает их куда ни попадя, а потом заявляет, мол он же применил стандартные инструменты. На счет неумения мною готовить MVC я тихо поржал над тобой в сторонке. Ага.

hVosttты применяешь подход аналогичный в XAML, где может ты и плаваешь как рыба в воде. но ASP.NET MVC здесь вполне уместно применять то, что было предложено разработчиками. по большей части. с чем ты споришь, непонятно
Я не применяю подход, аналогичный в XAML. Срать вообще на XAML и всё стальное, речь не о том - я применяю подход, который граничит с здравостью ума и гибкостью архитектуры. В твоём случае - ни здравости ума, ни гибкости в архитектуре. Как всегда, двойка тебе.

hVostteJack
как отличить хорошего админа от плохого? хороший весь рабочий день по большей части балдеет, плохой постоянно пашет, сетку понимаешь чинит.
Балдеют бездельники, а хороший админ в свободное время развивается и поднимает скилл. Всегда есть куда расти, иначе - деградация. Если уж время совсем много, нормальный админ берет себе подряды и админит удаленно другие конторы. У админа всегда навалом работы.

hVostteJackкак отличить хорошего программиста от плохого? хороший сделает всё, чтобы меньше ипаться. плохой трудяжка будет херачить и копипастить сотни тысяч строк, вместо того, чтобы разочек включить голову.
Так вот ты относишься ко второй категории, тебе об этом и пытаются сказать.

hVostteJack"надоело" -- это то, что программиста делает программистом. а за "уволен", пожизненный ярлык "самодур" без навыков самостоятельного мышления. слишком много умных книжек видемо начитались. эх....
Надоело - это то, что программиста делает гавном. Есть требования свыше от руководителя, есть архитектура, есть конкретная задача, есть сроки - сиди и пили. Надоело - иди коров паси. А "самодур" или "дуросам" - это всё детский сад, не иначе. Когда сам станешь руководителем, будешь принимать на работу людей и увольнять их, ставить задачи, контролировать выполнение, наказывать за фэкапы и прочие косяки, заслонять своих людей от нападков злого бизнеса, премировать и депримировать отличившихся и так далее - вот тогда и поговорим. А пока забейся в свой угол и пиши такой код, который говорят тебе дяди. Если не будешь этого делать - уволен нах. Самодеятельность и прочая феерическая манера поспорить с руководством о правильности кода - даже в детском садике пресекается.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38541913
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostteJackОтвет надоело, это в моем понимании пафос разработчика, который отвечает на вопрос - "Почему ты так делаешь" - "Надоело",
Ответный пафос - "Уволен".

как отличить хорошего админа от плохого? хороший весь рабочий день по большей части балдеет, плохой постоянно пашет, сетку понимаешь чинит.

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

"надоело" -- это то, что программиста делает программистом. а за "уволен", пожизненный ярлык "самодур" без навыков самостоятельного мышления. слишком много умных книжек видемо начитались. эх....

ответ делитанта - хороший админ будет повышать компетенции в свободное время (это как минимум).
хороший программист сделает все что бы ипаться в будущем менше - что бы в дальнейшем сопровождать систему было проще. (сопровождение это не только правка багов но и развитие!). Если после хорошоего программиста для внесения изменений в структуру БД придется переписать 25 методов контролера и протестировать правильность начитки данных во все ViewBag - это плохой программист.

"надоело" - это ответ не делающий ни кого программистом - а только подтверждаетон лентяй и самодур. На это соответствующая реакция.

Ответ - "я не буду так делать, а буду по другому потому что ..... " это ответ достойный профессионала.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38541961
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорош цепляться к словам) я ж не написал просто надоело и не хочу. а добавил причину, потому что мне так показалось, возникли сомнения . Если кто то считает что это не причина, это его воля так судить и думать я что плохой программист т.к. можно в след раз и не слушать меня.
handmadeFromRu...я раньше также в модель прокидывал, но надоело. Ощущение искусственности
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38542013
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

Да уже не к вам вопрос, коллега hVostt развил свою мысль на основе вашего высказывания.
Про то что вы плохой программист ни кто не говорил, мысль была что так делать не хорошо.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38542023
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuХорош цепляться к словам) я ж не написал просто надоело и не хочу. а добавил причину, потому что мне так показалось, возникли сомнения . Если кто то считает что это не причина, это его воля так судить и думать я что плохой программист т.к. можно в след раз и не слушать меня.
handmadeFromRu...я раньше также в модель прокидывал, но надоело. Ощущение искусственности
Я не понимаю тебя, о какой искуственности идет речь?

На пальцах. Вот моя модель представления, по сути какая-то транзакция по клиенту c доступными и выбранным состояниями.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
// vm
public class TransactionModel
{
    public Guid TransactionId { get; set; }
    public DateTime Date { get; set; }
    public Customer Customer { get; set; }
    public IEnumerable<State> States { get; set; }
    public int StateId { get; set; }
}
    
// dm
public class Customer
{
    public int CustomerId { get; set; }
    public string FullName { get; set; }
}

// dm
public class State
{
    public int StateId { get; set; }
    public string Title { get; set; }
}



Данная модель представления как нельзя лучше и полно описывает представление. Представление может быть любым. И WebForms, и MVC, и XAML, и WinForms, и так далее (либо с минимальными (!) переделками).

Вот конкретно для MVC моё UI, а конкретно - комбобокс для состояний.

Код: c#
1.
2.
3.
4.
@Html.DropDownListFor(model =>
    model.StateId,
    Model.States.Select(d => new SelectListItem { Value = d.StateId.ToString(), Text = d.Title })
)



Как видишь, никаких левых вью багов, шаблонов, фильтров и прочей ереси. Что может быть проще?
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38542502
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt...
...
вот ещё, подумалось, OWIN тогда получается вообще какая-то фигня, там же всё через словари и ключи организовано. никакой типизации! в топку! разрабов на костёр!

к сожалению не работал, не знаю.

Но при этом есть большой опыт работы с мапами (например HashMap) на Java - это тот же ViewBag из ASP.NET MVC, по крайней мере технически должен быть реализован так же. Ад кромешный.

Мест для ошибок, достаточно простых - при достаточно!
Постоянное приведение типов не способствуют увеличению быстродействия - а так же как правило колючем выступает строка - тут всегда есть место где ошибиться.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38543947
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это, никто не хочет мне объяснить, почему я не могу сделать так, как я хочу ?
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38544089
kim-kong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, я как всегда был невнимателен и указал IngId вместо GoodId всем спасибо за внимание. Не ожидал, что я буду причиной таких дискуссий.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38885844
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что будет, если во ViewBag будет ключ 'АБВГД' со значением "viewbag - не тру" и в модели будет свойство 'АБВГД' со значением "типизация решает", для которого мы захотим создать список - что будет в списке?

По поводу передачи списков через вьюбаг - это конечно адский треш - кому вообще в голову взбрело так делать..?

Догадаться можно о таком поведении, но выглядит это...
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38885847
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ууууууу, крутота.

В хелпере @Html.DropDownListFor нет ни одной перегрузки без входного параметра SelectList,
но его надо выставить в null, если коллекция определена в вьюбаге.

Логично?

А если для читаемости заменить null, на коллекцию из вьюбага? Ну так, чтоб след был виден?
Список появится, но признак выбранного элемента не отрендерится - получим пустой комбобокс. Это если свойство модели и ключ вьюбага будут иметь одинаковые значения.

Логично?

Возникает вопрос (hVostt, ты ходишь на собеседования?) - возможно ли сломать приложение (работающее), просто передав во ViewBag какое-то значение с произвольным ключом?

DropDownListFor - это нахрен закладка какая-то.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38885960
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueПо поводу передачи списков через вьюбаг - это конечно адский треш - кому вообще в голову взбрело так делать..?

А в чём ты видишь проблему? Я проблемы не вижу. Вьюбэг универсален. Но никто не заставляет, можешь во вью-модель впихнуть. Почему-то вообще никого не парит, когда надо подтягивать данные во всякие дропдауны динамически, делать это с помощью насквозь нетипизированного JavaScript — это выглядит вполне естественно и пользуются этим миллионы. Но когда речь заходит про динамический вьюбэг начинаются когнитивные процессы в мозгу, выливающиеся в размазню по кафелю

MonochromatiqueВ хелпере @Html.DropDownListFor нет ни одной перегрузки без входного параметра SelectList,
но его надо выставить в null, если коллекция определена в вьюбаге.

Логично?

У родных хелперов вообще проблем гораздо больше, чем эта. Самая большая проблема — это перегрузки. В данном случае это зло. Сделали бы билдеры в виде fluent chaining, всё было бы логично до немогу. Но что ж поделаешь, сделали так. При проектировании ошибок не избежать. Опять же родными дропдаунами никто пользоваться не заставляет. Всегда можно сотворить свой расово верный и правильный.

MonochromatiqueВозникает вопрос (hVostt, ты ходишь на собеседования?) - возможно ли сломать приложение (работающее), просто передав во ViewBag какое-то значение с произвольным ключом?

DropDownListFor - это нахрен закладка какая-то.

Возможно. Но и через типизированную модель сломать работающее приложение тоже можно. Например, передав в несколько полей типа string по гигу текста. А почему нет?
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38885979
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueПо поводу передачи списков через вьюбаг - это конечно адский треш - кому вообще в голову взбрело так делать..?

А в чём ты видишь проблему? Я проблемы не вижу. Вьюбэг универсален. Но никто не заставляет, можешь во вью-модель впихнуть. Почему-то вообще никого не парит, когда надо подтягивать данные во всякие дропдауны динамически, делать это с помощью насквозь нетипизированного JavaScript — это выглядит вполне естественно и пользуются этим миллионы. Но когда речь заходит про динамический вьюбэг начинаются когнитивные процессы в мозгу, выливающиеся в размазню по кафелю

MonochromatiqueВ хелпере @Html.DropDownListFor нет ни одной перегрузки без входного параметра SelectList,
но его надо выставить в null, если коллекция определена в вьюбаге.

Логично?

У родных хелперов вообще проблем гораздо больше, чем эта. Самая большая проблема — это перегрузки. В данном случае это зло. Сделали бы билдеры в виде fluent chaining, всё было бы логично до немогу. Но что ж поделаешь, сделали так. При проектировании ошибок не избежать. Опять же родными дропдаунами никто пользоваться не заставляет. Всегда можно сотворить свой расово верный и правильный.

MonochromatiqueВозникает вопрос (hVostt, ты ходишь на собеседования?) - возможно ли сломать приложение (работающее), просто передав во ViewBag какое-то значение с произвольным ключом?

DropDownListFor - это нахрен закладка какая-то.

Возможно. Но и через типизированную модель сломать работающее приложение тоже можно. Например, передав в несколько полей типа string по гигу текста. А почему нет?

Почему ищем во вьюбаге я понять не могу?? Надо искать сразу в контексте по условиям одним-разрабам-известным. По похожему названию.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38885984
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueПочему ищем во вьюбаге я понять не могу?? Надо искать сразу в контексте по условиям одним-разрабам-известным. По похожему названию.

По одному и тому же ключу во ViewBag и в Model, хелпер DropDownList предполагает следующее:

в Model хранится значение выбранного элемента из списка

в ViewBag хранится коллекция SelectListItem со всеми элементами для списка

Такая логика.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38885995
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttMonochromatiqueПочему ищем во вьюбаге я понять не могу?? Надо искать сразу в контексте по условиям одним-разрабам-известным. По похожему названию.

По одному и тому же ключу во ViewBag и в Model, хелпер DropDownList предполагает следующее:

в Model хранится значение выбранного элемента из списка

в ViewBag хранится коллекция SelectListItem со всеми элементами для списка

Такая логика.


А мне вот интересно - такое поведение хелпера где-то описано?
Я вот вчера потратил на это времени - ну явно больше, чем стоит тратить на хелпер.

Конечно, если бы сразу стал шерстить форум - получилось бы меньше. Но я полез в инет.
...
Рейтинг: 0 / 0
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
    #38886078
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueА мне вот интересно - такое поведение хелпера где-то описано?
Я вот вчера потратил на это времени - ну явно больше, чем стоит тратить на хелпер.

Конечно, если бы сразу стал шерстить форум - получилось бы меньше. Но я полез в инет.

Я обычно, если мне что-то не ясно, зырю исходники, благо они в открытом доступе.
...
Рейтинг: 0 / 0
25 сообщений из 80, страница 3 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хочу через ViewBag передать данные во View, но просят привязать источник данных.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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