Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Хочу через ViewBag передать данные в View (в похожей проге писал 1х1 и все работало), но на этот раз, когда я заполняю поля и нажимаю submit, меня просят привязать данные: System.InvalidOperationException: Прежде чем может быть выполнена эта операция, должен быть привязан источник данных. Заранее извиняюсь за русскую студию. Модель, контроллер, вью: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: 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. Код: html 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. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2014, 03:06 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
kim-kong, Вбил данные в БД вручную, grid рабочий, значит я криво ввожу данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:15 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
ViewBag зло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:28 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУViewBag зло для DropDownList и прочих таких штук, ViewBag -- то што надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:44 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttМСУViewBag зло для DropDownList и прочих таких штук, ViewBag -- то што надо Ты чё там куришь, злыдень? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:52 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУТы чё там куришь, злыдень? я те серьёзна говорю, если затолкать IEnumerable<SelectListItem> во ViewData/Bag с ключом поля, то он отрендерится в DropDownList: Код: c# 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:07 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Mike Wasson говорит, что Razor - отстой, Knockout через JSON рулит ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:10 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
carrotikMike Wasson говорит, что Razor - отстой, Knockout через JSON рулит ... :) это он говорит: http://mikewasson.com/ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:13 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУ, Если есть предложение лучше - вперед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:15 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
имхо согласен с hVostt, чтоб не засорять целевую модель бесполезными списками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:40 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttМСУТы чё там куришь, злыдень? я те серьёзна говорю, если затолкать IEnumerable<SelectListItem> во ViewData/Bag с ключом поля, то он отрендерится в DropDownList: Код: c# 1. 2. 3. 4. 5. 6. 7. Уволить без выплаты материального пособия. http://codearticles.ru/articles/764 handmadeFromRuимхо согласен с hVostt, чтоб не засорять целевую модель бесполезными списками -1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 15:44 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУhVosttпропущено... я те серьёзна говорю, если затолкать IEnumerable<SelectListItem> во ViewData/Bag с ключом поля, то он отрендерится в DropDownList: Код: c# 1. 2. 3. 4. 5. 6. 7. Уволить без выплаты материального пособия. http://codearticles.ru/articles/764 handmadeFromRuимхо согласен с hVostt, чтоб не засорять целевую модель бесполезными списками -1 +100500 Особенно если таких выпадающих списков на форме много, замучаешься ViewBag писать сначала в методе контроллера, а потом в разметке. View должен отображать жанные из одного места - из модели. При подходе Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. вы получаете не формируете целостную модель, это просто данные полученные разными запросами, без каких либо зависимостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:01 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJack, и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут. МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:10 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuМСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности Что значит надоело? Модель представления - это описание представления, чем "типизированнее" она будет, тем в будущем будет легче сопровождать такое решение, тестировать и вносить изменения. Залипушки на вьюбэгах - это шаг в пропасть , на странице из одного комбобокса это еще не страшно, на страницах с множеством контролов - это просто хаос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:26 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRueJack, и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут. МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности А что и? У вас нет понимания архитектуры решения, таких разработчиков, которым надоело писать нормально сопровождаемый код, я увольняю. Как тимлидер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:45 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJackhandmadeFromRueJack, и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут. МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности А что и? У вас нет понимания архитектуры решения, таких разработчиков, которым надоело писать нормально сопровождаемый код, я увольняю. Как тимлидер. +1, если желание писать красиво и правильно пропадает, лучше валить из разработки на пастбище, увеличивать надои страны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:50 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУЧто значит надоело? Модель представления - это описание представления, чем "типизированнее" она будет, тем в будущем будет легче сопровождать такое решение, тестировать и вносить изменения. Залипушки на вьюбэгах - это шаг в пропасть , на странице из одного комбобокса это еще не страшно, на страницах с множеством контролов - это просто хаос. типизированная модель представления -- очень хорошо. но отказываться от вьюбэга при этом глупо. пример с DropDownList -- тот случай, когда ViewBag использовать нужно. вот это: Код: c# 1. 2. 3. 4. 5. 6. 7. обсолютно неюзабельная вафля, не годится даже в качестве примеров для учебников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:51 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУ, У меня не такое масштабное приложение, чтобы об этом задумываться, вьюбаг хорошо зашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:53 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУ, ну как те сказать. я не вижу разницы просто: что я прокидываю коллекции через модель для биндинга дропдаунов что через ViewBag . Тестам это не мешает так как на входе модель, тупо id-ники выбранных элементов. Эти искусственные коллекции не несут какой то логики кроме как забиндить список и все. Ты еще скажи ты title и meta без ViewBag прокидываешь. Это чисто мои ощущения даже с большим кол-во контролов, конечно будет фейл если имена переменных во ViewBag пересекутся или поле ключа переименовали. и МСУ давай без твоих шуточек про стадо и прочее. я тебе свои аргументы ты мне свои. а какашками все умеют кидаться. eJack в чем нормальность? прокинули коллекцию Id-Name без какой либо смысловой нагрузки? по вашему я не смогу тестами покрыть это дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:54 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJackhandmadeFromRueJack, и? поля просто висят и просто заполняются и никакой нагрузки смысловой не несут. МСУ я раньше также в модель прокидывал, но надоело. Ощущение искусственности А что и? У вас нет понимания архитектуры решения, таких разработчиков, которым надоело писать нормально сопровождаемый код, я увольняю. Как тимлидер. +1, если желание писать красиво и правильно пропадает, лучше валить из разработки на пастбище, увеличивать надои страны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 16:55 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJackОсобенно если таких выпадающих списков на форме много, замучаешься ViewBag писать сначала в методе контроллера, а потом в разметке. View должен отображать жанные из одного места - из модели. понятие "декомпозиция" вам о чём-нибудь говорит? данные для выпадающего списка прибивать гвоздями к вью модели -- практика однозначно плохая и неэффективная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:10 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJack, целевую модель никто не пихает во вьюбег, а если смотреть ваш примеру - вы имели ввиду это, только вспомогательные списки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:11 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttтипизированная модель представления -- очень хорошо. но отказываться от вьюбэга при этом глупо. Так а зачем он мне нужен, если мои задачи покрываются полной типизацией? hVosttпример с DropDownList -- тот случай, когда ViewBag использовать нужно. Пример с DropDownList -- тот случай, когда ViewBag использовать не нужно. hVosttвот это: Код: c# 1. 2. 3. 4. 5. 6. 7. обсолютно неюзабельная вафля, не годится даже в качестве примеров для учебников. Я не собираюсь тебя уговаривать писать правильный код. handmadeFromRuМСУ, ну как те сказать. я не вижу разницы просто: что я прокидываю коллекции через модель для биндинга дропдаунов что через ViewBag . Не видишь разницу между типизируемым тестируемым кодом и гавнокодом с вью баг? Ну извини, мне тут нечего сказать. Это как использовать DataTable и ORM. handmadeFromRuТестам это не мешает так как на входе модель, тупо id-ники выбранных элементов. Эти искусственные коллекции не несут какой то логики кроме как забиндить список и все. Ты еще скажи ты title и meta без ViewBag прокидываешь. Это чисто мои ощущения даже с большим кол-во контролов, конечно будет фейл если имена переменных во ViewBag пересекутся или поле ключа переименовали. и МСУ давай без твоих шуточек про стадо и прочее. я тебе свои аргументы ты мне свои. а какашками все умеют кидаться. Это не искуственные коллекции, это описание представления. Они нужны всегда и везде. Даже в том же MVVM подходе ты точно так же описываешь свою коллекцию и SelectedId и намапливаешь в XAML. А ViewBag я бы вообще запретил бы в MVC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:14 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVostteJack понятие "декомпозиция" вам о чём-нибудь говорит? Декомпозиция головного мозга? hVosttданные для выпадающего списка прибивать гвоздями к вью модели -- практика однозначно плохая и неэффективная. Любые данные (а не только выпадающего списка) нужно прибивать гвоздями к вью модели. На то она и вью модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:16 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУЭто не искуственные коллекции, это описание представления. Они нужны всегда и везде. Даже в том же MVVM подходе ты точно так же описываешь свою коллекцию и SelectedId и намапливаешь в XAML. вот тут ты меня переубедил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:44 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, по поводу title и иже http://codearticles.ru/articles/2438 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 17:58 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУЛюбые данные (а не только выпадающего списка) нужно прибивать гвоздями к вью модели. На то она и вью модель. Вью модель это лишь концепция. Как и любая концепция она имеет разумные рамки применения. Фанатичныму подходу в программировании -- не место. На трибуне унимка-профессора, пожалуйста, можно впаривать что угодно в молодые мозги. На практике нужно включать мозг в первую очередь. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Модель и данные для выпадающего списка -- не связаны. И не надо их сшивать белыми нитками. Нет в этом никакой потребности. Атрибут [PopulateCategories] складывает данные во ViewData только при рендеринге View и не зависит от конкретной модели, где эти данные могут понадобиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 18:00 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУhandmadeFromRu, по поводу title и иже http://codearticles.ru/articles/2438 жесть какая-то. ну ты и извращениц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 18:02 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttМСУЛюбые данные (а не только выпадающего списка) нужно прибивать гвоздями к вью модели. На то она и вью модель. Вью модель это лишь концепция. Как и любая концепция она имеет разумные рамки применения. Фанатичныму подходу в программировании -- не место. На трибуне унимка-профессора, пожалуйста, можно впаривать что угодно в молодые мозги. На практике нужно включать мозг в первую очередь. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Модель и данные для выпадающего списка -- не связаны. И не надо их сшивать белыми нитками. Нет в этом никакой потребности. Атрибут [PopulateCategories] складывает данные во ViewData только при рендеринге View и не зависит от конкретной модели, где эти данные могут понадобиться. Никому не показывай этот кромешный ад. Связыванием данных и модели занимается контроллер и никто иной. У тебя же получается каша. Что-то на модель вяжется с контроллера, что-то с атрибута и вью бага. Маразматичнее еще я ничего в жизни не видел. Именно для таких упоротокодеров создавался чудесный мвц, но они его снова опошлили и забросали пометом. Ужос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 18:25 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Атрибуты для наполнения вью багов. Такое даже в страшном сне не приснится Скиана, ты где. Посмотри на эту жуть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 18:26 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuМСУ, ну как те сказать. я не вижу разницы просто: что я прокидываю коллекции через модель для биндинга дропдаунов что через ViewBag . Тестам это не мешает так как на входе модель, тупо id-ники выбранных элементов. Эти искусственные коллекции не несут какой то логики кроме как забиндить список и все. Ты еще скажи ты title и meta без ViewBag прокидываешь. Это чисто мои ощущения даже с большим кол-во контролов, конечно будет фейл если имена переменных во ViewBag пересекутся или поле ключа переименовали. и МСУ давай без твоих шуточек про стадо и прочее. я тебе свои аргументы ты мне свои. а какашками все умеют кидаться. eJack в чем нормальность? прокинули коллекцию Id-Name без какой либо смысловой нагрузки? по вашему я не смогу тестами покрыть это дело? А теперь давайте решим нормальную задачу и возьмем сущность посложнее, например, клиент - юр. лицо. У него куча классификаторов, групп, категорий, лимитов, продукты, история запросов и т.д., это не считая обычных атрибутов типа адреса, контакты, контрагенты, доверенные лица и т.д. И стоит задача - разработать View для работы с катрочкой клиентов, да еще и для разных ролей пользователей разработать разные View с возможность отображать только доступную этой роли информацию и доступные операции. начнем с этих строк: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вы для каждого View будите коллекции протягивать и их тестами покрывать? Флаг в руки и барабан на шею - но играйте на них не у меня! А как же работа с кешами, или если добавили или изменили атрибуты, или теперь данные по контрагентам подтянгиваются не из базы а из внешнего сервиса - переписываем все view, методы контролеров - так? Далее, у такой сущности будет пара десятков выпадающих списков и вы будите так на всех View их отображать и как отлаживать будите без типизации? Код: c# 1. 2. 3. 4. 5. 6. 7. В моем случае и МСУ предложенном(нормальном), на этапе компиляции получите отлуп - а тут уже на сервере будите отлаживать - дольше и не эффективнее - кому это нужно? hVostteJackОсобенно если таких выпадающих списков на форме много, замучаешься ViewBag писать сначала в методе контроллера, а потом в разметке. View должен отображать жанные из одного места - из модели. понятие "декомпозиция" вам о чём-нибудь говорит? данные для выпадающего списка прибивать гвоздями к вью модели -- практика однозначно плохая и неэффективная. Давайте раскройте мне тайну про декомпозицию?! handmadeFromRueJack, целевую модель никто не пихает во вьюбег, а если смотреть ваш примеру - вы имели ввиду это, только вспомогательные списки. Вспомогательные списки - это что?, это не свойства бизнес сущности? Приведите примеры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 19:40 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, hVostt, а так же я бы хотел увидеть в вашем исполнении (с применением ViewBag) методы контроллера и View: index, insert (Get), insert(Post), update(Get), update(Post), delete (Get, Post) особенно в свете фразы - handmadeFromRu ........ по вашему я не смогу тестами покрыть это дело? ну и тесты собственно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 19:52 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУАтрибуты для наполнения вью багов. Такое даже в страшном сне не приснится Скиана, ты где. Посмотри на эту жуть :) фильтры являются частью логики контроллера (аспекты). в чём проблема-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 07:30 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУСвязыванием данных и модели занимается контроллер и никто иной. У тебя же получается каша. никакой каши. каждый отвечает чётко за свою узко специализированную задачу. если хочется типизированности, то тогда выпадающие списки надо генерить через отдельный PartialAction, и туда пробрасывать свою любимую типизированную модель. ради бога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 07:32 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJackДавайте раскройте мне тайну про декомпозицию?! никакой тайны. разделяй и властвуй. ибо нехрен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 07:32 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJackа так же я бы хотел увидеть в вашем исполнении (с применением ViewBag) методы контроллера и View: я уже привёл кусок кода. экстраполируйте. что касается тестирования, фильтры тестируются не хуже (а даже и лучше) контроллеров. показать как должен выглядеть тест, который после работы фильтра должен обнаружить во ViewBag коллекцию SelectListItem? в чём проблема, ещё раз? вы пока оба вместе с МСУ кроме размахивания руками в воздухе ещё не указали ни на одну проблему в таком подходе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 07:35 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttфильтры являются частью логики контроллера (аспекты). в чём проблема-то? Проблему наглядно описал eJack на примере юридического лица, его нетривиальных атрибутов и связей. Туда же в замес попала безопасность с ролями, которая должна запрещать доступ к тем или иным данным, а так же усекать выборки в разрезе прав. Причем, эта типизированная цепочка не должна зависеть от каких-то атрибутов и не должна быть прибита гвоздями к MVC. Эту модель можно использовать хоть в WPF, хоть в WinForms, хоть в SOA. Вот это называется правильная архитектура. А у тебя какой-то бред сивой кобылы, смесь мух и тараканов. Лично мне не нужна такая каша. hVosttникакой каши. каждый отвечает чётко за свою узко специализированную задачу. если хочется типизированности, то тогда выпадающие списки надо генерить через отдельный PartialAction, и туда пробрасывать свою любимую типизированную модель. ради бога. Да пофиг, как именно генерить представление. Хоть циклом @foreach динамически создавать select с option'ами. Самое главное - должна быть полноценная типизированная модель, которая будет намапливаться на представление, с которой можно удобно и гибко работать, которую можно прозрачно покрывать тестами и создавать mock'и, которую можно использовать вне контекста MVC и так далее. А как создать конечный комбобокс на клиенте - дело десятое и малопринципиальное. Мне нравится создание "комбобокса на лету", как я показал выше. Никаких трудозатрат и лишних телодвижений по созданию чего-то там где-то там. Просто, типизированно и гибко. hVosttвы пока оба вместе с МСУ кроме размахивания руками в воздухе ещё не указали ни на одну проблему в таком подходе. Тебе уже всё разжевали и в рот положили. handmadeFromRu согласился с доводами, потому что понял суть сказанного и взвесил за и против. У тебя же с пониманием, как всегда, затяжной период. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 09:20 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJack, давай продолжим диалог дальше, хоть я уже и согласился с МСУ, и это уже ничего не меняет. Пафос про тимлида и увольнение зачем это писать? да может я не столь опытен и могу ошибаться, но аргументируй! а не пишите я тимлид и уволил бы. Но мне стало интересно по поводу некоторых ваших фраз. И мы да говорим в контексте ViewModel а не бизнес модели, почувствуйте разницу. eJackА теперь давайте решим нормальную задачу и возьмем сущность посложнее, например, клиент - юр. лицо. У него куча классификаторов, групп, категорий, лимитов, продукты, история запросов и т.д., это не считая обычных атрибутов типа адреса, контакты, контрагенты, доверенные лица и т.д. И стоит задача - разработать View для работы с катрочкой клиентов, да еще и для разных ролей пользователей разработать разные View с возможность отображать только доступную этой роли информацию и доступные операции. хм а зачем ложить все яйца в корзину если можно разбить на подвюьшки? причем все равно конечный пользователь будет редактировать только какую то часть всего того что вы перечислили. Если у меня проекты разные asp mvc asp forms wpf я не смогу удержать 1 и туже ViewModel , по простой причине что UI будет не такой, но бизнес модель таже и остается напамить её на конкретную ViewModel. Что показывать в разрезе прав это уровень бл и модели бл. а бл часто не равно контролеру. в ViewModel контроллер поместил, то и будет отображено. Приведу пример где во ViewModel не получится прокинуть списки всегда, у вас каскадные дропдауны. Вы не сможете прокинуть все возможные варианты прокинуть в таком случае. eJackначнем с этих строк: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. никто целевую модель не кинет во вьюбег, вы передергиваете, вьюшка типизирована, не типизированы только списки для дропдаунов. читаем внимательно. eJackВы для каждого View будите коллекции протягивать и их тестами покрывать? Флаг в руки и барабан на шею - но играйте на них не у меня! А как же работа с кешами, или если добавили или изменили атрибуты, или теперь данные по контрагентам подтянгиваются не из базы а из внешнего сервиса - переписываем все view, методы контролеров - так? тестировать представление эм зачем? там нет логики и все тривиально, или мне протестить какая верстка на выхлопе? А что кеши? или сторонние сервисы? все данные придут из бл. какие проблемы? и как это решит ваша вьюмодель то? или мы мешаем вьюмодель с модель бизнес логики? eJackДалее, у такой сущности будет пара десятков выпадающих списков и вы будите так на всех View их отображать пара десятков выпадающий на 1 вью? эм как минимум не правильный UI. eJackи как отлаживать будите без типизации? .... на этапе компиляции получите отлуп - а тут уже на сервере будите отлаживать - дольше и не эффективнее - кому это нужно? вот уже по делу и я это сам уже писал на 1 странице, что могут быть проблемы. я тут согласен полностью. + dynamic все таки медленная штука если хайлоад eJackВспомогательные списки - это что?, это не свойства бизнес сущности? Приведите примеры это нифига не свойства бизнес сущности, это свойство модели представления и не более. eJackindex, insert (Get), insert(Post), update(Get), update(Post), delete (Get, Post) особенно в свете фразы - объясните зачем мне тестить каждый экшен? зачастую бл != контролеру\экшен. я тестирую бл и не важно что у меня веб формы, асп мвц или wpf. в тестах для бл подменяю на мок-репо источник данных. может я не знаю, в силу малоопытности и вы меня обогатите знаниями зачем мне тестить представление. Мне хватает чтоб силениум протестил юзер кейсы для вьюшек. п.с. мне интересно что вы скажите и мне не стремно сказать, что я не прав если мне аргументируют. у меня сложилось впечатление, что у вас вьюмодель это модель бизнес логики. Я может не правильно мыслил и после этого стану лучше понимать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 11:04 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRueJack, давай продолжим диалог дальше, хоть я уже и согласился с МСУ, и это уже ничего не меняет. Пафос про тимлида и увольнение зачем это писать? да может я не столь опытен и могу ошибаться, но аргументируй! а не пишите я тимлид и уволил бы. Не ной, а сконцентрируйся на проблеме лучше. Ныть - в детский сад. handmadeFromRuНо мне стало интересно по поводу некоторых ваших фраз. И мы да говорим в контексте ViewModel а не бизнес модели, почувствуйте разницу. Так тем более, вью-модель должна вообще полностью описывать UI. Или ты к чему это спросил? К тому, что вью модель не нужно тестировать? Ну почувствовали разницу, а дальше-то что? handmadeFromRuхм а зачем ложить все яйца в корзину если можно разбить на подвюьшки? причем все равно конечный пользователь будет редактировать только какую то часть всего того что вы перечислили. Если у меня проекты разные asp mvc asp forms wpf я не смогу удержать 1 и туже ViewModel , по простой причине что UI будет не такой, но бизнес модель таже и остается напамить её на конкретную ViewModel. Что показывать в разрезе прав это уровень бл и модели бл. а бл часто не равно контролеру. в ViewModel контроллер поместил, то и будет отображено. Приведу пример где во ViewModel не получится прокинуть списки всегда, у вас каскадные дропдауны. Вы не сможете прокинуть все возможные варианты прокинуть в таком случае. Какие подвьюшки, ты о чем? Есть логика, есть данные. На основе логики нужно скрыть данные или их усечь. Всё это делается с моделью, вью отображает данные. Генерация или сокрытие контролов в зависимости от логики - на лету в разоре. Я уже тут сто раз вам разжевывал про ISecurityService, который выпиливает из модели ненужное и предоставляет все данные по анализу доступности того или иного объекта. Какие вьюшки? handmadeFromRuникто целевую модель не кинет во вьюбег, вы передергиваете, вьюшка типизирована, не типизированы только списки для дропдаунов. читаем внимательно. Осталось только понять, что есть целевая модель, а что есть нецелевая модель. И почему списки для комбобоксов не типизированы? Чем они такие особенные? Есть еще и гриды master-detail-detail-..., чеклистбоксы, n-колоночные комбобоксы, шедулеры, и прочая списочная хрень. Ты всё это тоже предлагаешь выносить в этот нетипизированный кал? Так проще сразу убить себя. handmadeFromRuтестировать представление эм зачем? там нет логики и все тривиально, или мне протестить какая верстка на выхлопе? А что кеши? или сторонние сервисы? все данные придут из бл. какие проблемы? и как это решит ваша вьюмодель то? или мы мешаем вьюмодель с модель бизнес логики? Тестировать представление тоже нужно, и логика в нем тоже есть. Банальные даже ифы для генерации или сокрытия контролов. Да и речь не только в тестировании вью-модели, как ты не можешь понять этого. handmadeFromRueJackДалее, у такой сущности будет пара десятков выпадающих списков и вы будите так на всех View их отображать пара десятков выпадающий на 1 вью? эм как минимум не правильный UI. Не нужно судить о неправильности на основе своего скудного опыта. Пара десятков комбобоксов - это мелочи. Посиди как-нить на досуге в бухгалтерии серьезной компании (1С, аксапта или SAP) и посмотри на их формы. После этого можешь пойти и снова убить себя. Дабл пенитрэйшен фаталити. handmadeFromRuп.с. мне интересно что вы скажите и мне не стремно сказать, что я не прав если мне аргументируют. у меня сложилось впечатление, что у вас вьюмодель это модель бизнес логики. Я может не правильно мыслил и после этого стану лучше понимать. Ты не прав. Позволь мне это сказать за еджека. Остальное придет с опытом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 12:05 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУВот это называется правильная архитектура. А у тебя какой-то бред сивой кобылы, смесь мух и тараканов. эй-эй. как раз таки я именно эту проблему и решил. мухи отдельно, кобылы с мухми тоже порознь. а вот вы с ежиком напялили на себя православно-типизированный противогаз с топчитесь с какашках с возгласами "а нам не воняет"" давай ещё раз поясню. у меня в модели есть поле CategoryId. это некий код, обозначающий связь с сущностью. в модели нет никакой коллекции этих сущностей. нет и быть не может. какого хрена я должен наклать говна с ложкой в модель? зачем? это легко и элегантно решается, проблем пока не вижу. обозначьте хоть одно. тыкните носом. только без разглагольствований "вот так правильно, а так неправильно" -- не филосовствуйте. покажите проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 13:54 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУУ тебя же с пониманием, как всегда, затяжной период. да я бы рад. но вы пока ходите с умным видом вокруг да около. по сути не говорите. похоже что-то знаете такое, что никто не знает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 13:55 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttМСУВот это называется правильная архитектура. А у тебя какой-то бред сивой кобылы, смесь мух и тараканов. эй-эй. как раз таки я именно эту проблему и решил. мухи отдельно, кобылы с мухми тоже порознь. а вот вы с ежиком напялили на себя православно-типизированный противогаз с топчитесь с какашках с возгласами "а нам не воняет"" Ты ничего не решил, ты сделал очередную глупость. Часть инициализации модели представления вынес в отдельный скоуп. И всё ради чего, ради каких-то там комбобоксов? Только полный чайник будет ломать модель из-за удобства программирования UI. Да и какое удобство, как-раз наоборот. hVosttдавай ещё раз поясню. у меня в модели есть поле CategoryId. это некий код, обозначающий связь с сущностью. в модели нет никакой коллекции этих сущностей. нет и быть не может. какого хрена я должен наклать говна с ложкой в модель? зачем? это легко и элегантно решается, проблем пока не вижу. Я тебе десятый раз повторяю, если в UI требуется вывести какие-то данные, они безотлагательно должны фигурировать в модели. Это даже не обсуждается. Мне твоё UI фиолетово, завтра моя модель уйдет в WPF и что я буду в XAML писать, твои экшен атрибуты из MVC? Да хрен бы с WPF, даже со здравой точки зрения инициализация данными в n местах - бред сивой кобылы. Тебе писать код противопоказано, серьезно Иногда ты такой бред несешь, что даже читать его опасно. hVosttобозначьте хоть одно. тыкните носом. только без разглагольствований "вот так правильно, а так неправильно" -- не филосовствуйте. покажите проблему. Разжевали и в рот положили. Что не ясно? hVosttМСУУ тебя же с пониманием, как всегда, затяжной период. да я бы рад. но вы пока ходите с умным видом вокруг да около. по сути не говорите. похоже что-то знаете такое, что никто не знает Уже всё сказано и написано. Я не виноват, что до тебя не доходит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 14:32 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttобозначьте хоть одно. тыкните носом. только без разглагольствований "вот так правильно, а так неправильно" -- не филосовствуйте. покажите проблему. Код: html 1. Тут студия не палит ошибку, вариант? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 14:41 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУ, пока что вижу сплошную демагогию. так дескать правильно, в трактатах записано, а так неправильно. но почему? хз, иди сам додумай. МСУЯ тебе десятый раз повторяю, если в UI требуется вывести какие-то данные, они безотлагательно должны фигурировать в модели. Это даже не обсуждается. во-первых. не какие-то, а весьма конкретные. естественно они должны быть в модели. но ты запихиваешь в модель всё что попало. в итоге это у тебя не модель, а куй знает что. что попало короче. ПарамонhVosttобозначьте хоть одно. тыкните носом. только без разглагольствований "вот так правильно, а так неправильно" -- не филосовствуйте. покажите проблему. Код: html 1. Тут студия не палит ошибку, вариант? ) кхм. @Html.DropDownList("") а так вообще пох, и ведь будет работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 15:47 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУТолько полный чайник будет ломать модель из-за удобства программирования UI. Да и какое удобство, как-раз наоборот. как раз ты и ломаешь модель. конкретное действие контроллера работает с конкретной моделью. нехрен туда пихать всё что надо и ненадо. данные для выпадающего списка нужны отдельному контролу. он может располагаться во многих местах и учавствовать в отображении разных моделей. и делать мне больше нех, как забивать один и тотже список 10 раз, размазывать эту какаху на все контроллеры и действия. так не делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 15:50 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Простите, что вмешиваюсь в ваш высоконаучный спор. А что мешает сделать отдельный класс для всех этих списков и цеплять его к модели как свойство? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 15:54 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttкхм. @Html.DropDownList("") а так вообще пох, и ведь будет работать Вот именно, так что используем DropDownListFor ? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 16:44 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, пока что вижу сплошную демагогию. так дескать правильно, в трактатах записано, а так неправильно. но почему? хз, иди сам додумай. Типизация - это демагогия? Ну могу посоветовать только убиться после таких слов :) hVosttМСУЯ тебе десятый раз повторяю, если в UI требуется вывести какие-то данные, они безотлагательно должны фигурировать в модели. Это даже не обсуждается. во-первых. не какие-то, а весьма конкретные. естественно они должны быть в модели. но ты запихиваешь в модель всё что попало. в итоге это у тебя не модель, а куй знает что. что попало короче. Я запихиваю в модель не всё, что попало, а всё, что нужно представлению. В итоге у меня модель (представления) - полностью описывает UI, от начала и до конца. Как и должно быть со всеми вытекающими бенефитами. А твой хардкор просто неприемлем, особенно MVVM-щики тебя бы кастрировали за такой говнокод, не меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 16:48 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
ПарамонhVosttкхм. @Html.DropDownList("") а так вообще пох, и ведь будет работать Вот именно, так что используем DropDownListFor ? ) зашем? @Html.EditorFor(x => x.Prop) в шаблоне для Prop лежит @Html.DropDownList("") и волки целы и овцы сыты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:17 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУА твой хардкор просто неприемлем, особенно MVVM-щики тебя бы кастрировали за такой говнокод, не меньше. при чем тут mvvm-щики. там вообще другой подход. совершенно другой. и тоже, кстати, в модель всё подрят не пихают. разбивают на разные модели с наименьшей зависимостью друг от друга. МСУТипизация - это демагогия? Ну могу посоветовать только убиться после таких слов :) если ты не понял, я против типизации ничего не имеют против. только за. SelectList офигенно типизирован для любой коллекции ключ-значение. кладётся он во вьюбэг не просто по какому-то выдуманному ключу, а по ключу поля, к которому привязывается. это здесь тоже можно обойтись без магических строк и получать из мета. ниче не сломается, и тестится великолепно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:20 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Shocker.ProПростите, что вмешиваюсь в ваш высоконаучный спор. А что мешает сделать отдельный класс для всех этих списков и цеплять его к модели как свойство? SelectListItem же. не надо его лепить к модели. ни к чему. модель это модель. что касается MVC. если пытаться люто-бешено следовать концепции всё при всё запихать в модель, что будет отображено во вью, тогда надо абсолютно в каждую модель затолкать пользователя, имя которого надо рисовать в шапке, типа "привет, Вася Пупкин!". марзм? естественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:24 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVostt кладётся он во вьюбэг не просто по какому-то выдуманному ключу, а по ключу поля, к которому привязывается. это здесь тоже можно обойтись без магических строк и получать из мета. ниче не сломается, и тестится великолепно. Дык вьюбэг, он уже весь магический ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:33 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVostt зашем? @Html.EditorFor(x => x.Prop) в шаблоне для Prop лежит @Html.DropDownList("") и волки целы и овцы сыты и шаблон на каждый чих ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:39 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУНе ной, а сконцентрируйся на проблеме лучше. Ныть - в детский сад. тебе показалось МСУК тому, что вью модель не нужно тестировать? да. там нет логики и не должно быть, там готовые данные на отображение МСУИ почему списки для комбобоксов не типизированы? Чем они такие особенные? Есть еще и гриды master-detail-detail-..., чеклистбоксы, n-колоночные комбобоксы, шедулеры, и прочая списочная хрень. Ты всё это тоже предлагаешь выносить в этот нетипизированный кал? потому что спор начался с @Html.DropDownList("CategorYId"), где тут типизация. Я это не предлагал, мое предложение было что списки для вью можно прокинуть через вьюбаг и не более, так что не надо. Потом я согласил что это составляющая вьюмодели. Но к примеру если каскадные списки получится вьюмодель без списков, только с ключами. МСУТестировать представление тоже нужно, и логика в нем тоже есть. Банальные даже ифы для генерации или сокрытия контролов. Да и речь не только в тестировании вью-модели, как ты не можешь понять этого. покажи мне как ты покроешь тестами вью с логикой. МСУНе нужно судить о неправильности на основе своего скудного опыта. Пара десятков комбобоксов - это мелочи поверю, потому что не сталкивался с такими дикими интерфейсами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:40 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVostt зашем? @Html.EditorFor(x => x.Prop) в шаблоне для Prop лежит @Html.DropDownList("") и волки целы и овцы сыты[/quot] Какой бред. Зачем мне эта петрушка в залипушками в проекте? Это не проект, это какая-то свалка отходов. И всё ради чего, ради банальной отрисовки комбобокса? Завязывай уже с наркотой :) hVosttпри чем тут mvvm-щики. там вообще другой подход. совершенно другой. и тоже, кстати, в модель всё подрят не пихают. разбивают на разные модели с наименьшей зависимостью друг от друга. Там точно такой же подход, принципиально ничем не отличающийся. Только маппинги более мощные на XAML с кучами фишек и вкусностей. Идея такая же и стара как мир, инициализировать модель представления, намапить на вью, снять измененные данные с модели представления и отправить их в лес. Те же яйца, только приправленные немного другой спецификой технологии. Ты бы это понял, если имел кругозор. hVosttМСУТипизация - это демагогия? Ну могу посоветовать только убиться после таких слов :) если ты не понял, я против типизации ничего не имеют против. только за. SelectList офигенно типизирован для любой коллекции ключ-значение. кладётся он во вьюбэг не просто по какому-то выдуманному ключу, а по ключу поля, к которому привязывается. это здесь тоже можно обойтись без магических строк и получать из мета. ниче не сломается, и тестится великолепно. Постой. Только что ты рвал горло и вопил о том, что Код: c# 1. наше всё. Теперь ты говоришь, что у тебя всё типизированно и здорово. Какая типизация может быть в том, что я написал выше? Или ты пытаешься как-то выкрутиться и придумываешь всё новые и новые схемы самонаёба в виде @Html.EditorFor(x => x.Prop)? Я тебя не понимаю, ты скачешь как кузнечик по кустам и не можешь определиться с истиной. Может хорош писать гавнокод и пора включать голову? В моём варианте никаких дополнительных танцев с бубнами не нужно, имеем честную модель, имеем прозрачный вью, имеем линейную логику инициализации модели. Всё настолько просто, насколько это можно себе представить. Зачем мне тут атрибуты, фильтры, шаблоны с Prop, волки и овцы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:42 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuтебе показалось Ок, пусть будет так. handmadeFromRuМСУК тому, что вью модель не нужно тестировать? да. там нет логики и не должно быть, там готовые данные на отображение В любой более или менее сложной системе во вью есть всегда логика. Начиная от валидаторов (WebForms), javascript и т.д., и кончая навороченным умным разором с его @if и @else для генерации html. Особенно разор очень удобен для логики генерации контролов на основе прав пользователя. handmadeFromRuмое предложение было что списки для вью можно прокинуть через вьюбаг и не более, так что не надо. Потом я согласил что это составляющая вьюмодели. Но к примеру если каскадные списки получится вьюмодель без списков, только с ключами. Какая разница, какие списки, каскадные или феерические, с лампочками и рюшечками или с коровьим выменем. UI может быть самым разнообразным, а его модель неизменна. В том весь и цимус, что если модель содержит все данные для работы, UI можно строить любой без вмешательства в серверный код. Кстати, в этом же плюс и чудесного MVVM. Модель есть, она всё содержит в себе. UI меняй хоть каждый день и ни о чем не думай. Это очень удобно. handmadeFromRuпокажи мне как ты покроешь тестами вью с логикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:52 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
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. то в пост методе вам придется повторить все ваши выкруты для 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. и так для update методов и других. В случае не использования ViewBag просто передадите модель во View(Model) и все. Тут же мысль про плочение данных из разных источников - в методах контролера модель должна формироваться промежуточным слоем. Это вообще методы модели (в концепции MVC - Модель: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать ) handmadeFromRu eJack Вспомогательные списки - это что?, это не свойства бизнес сущности? Приведите примеры это нифига не свойства бизнес сущности, это свойство модели представления и не более. Давайте пример - пока это тоьлко сотрясение воздуха. Мой пример - категория обслуживания клиента - Базовый, Расширенный, Расширенный+, VIP, БОГ. С точки зрения физического хранения это таблица - справочник. Но для бизнеса это свойство объекта на которое завязанна логика - например тарифы, и доступные услуги (для разных категорий обслуживания они разные) а значит это часть бизнес сущности. теперь ваш вариант. handmadeFromRu eJack index, insert (Get), insert(Post), update(Get), update(Post), delete (Get, Post) особенно в свете фразы - объясните зачем мне тестить каждый экшен? зачастую бл != контролеру\экшен. я тестирую бл и не важно что у меня веб формы, асп мвц или wpf. в тестах для бл подменяю на мок-репо источник данных. может я не знаю, в силу малоопытности и вы меня обогатите знаниями зачем мне тестить представление. Мне хватает чтоб силениум протестил юзер кейсы для вьюшек. Затем что в вашем примере вы получаете данные в каждом методе заново - в жизни получение данных и формирование модели дело далеко не тривиальное - нужно тестировать. handmadeFromRuп.с. мне интересно что вы скажите и мне не стремно сказать, Это правильно, мне тоже не стремно оказаться не правым, не ошибается только те кто ни чего не делают! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 00:39 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
МСУКакой бред. Зачем мне эта петрушка в залипушками в проекте? Это не проект, это какая-то свалка отходов. И всё ради чего, ради банальной отрисовки комбобокса? Завязывай уже с наркотой :) какой-то узкий и однобокий у тебя взгляд на вещи. это обсолютно стандартные решения, нативные -- всё как ты любишь МСУТолько маппинги более мощные на XAML с кучами фишек и вкусностей. опять 25. при чём же тут твой XAML? MVVM это паттерн. что там и как делается в XAML по барабану вообще. паттерн MVVM более общий, и применяется в том числе при разработке клиентского JavaScript приложения, где XAML-ом и его отходами даже не пахнет. МСУнаше всё. Теперь ты говоришь, что у тебя всё типизированно и здорово. Какая типизация может быть в том, что я написал выше? естественно всё типизировано. шаблоны для EditorFor -- стандартное решение, предложенное вендором и повсеместно используемое. и ещё пока ни один кролик не пострадал. я не понимаю с чем ты споришь. хочешь сделать заявление по поводу того, что ASP.NET MVC спроектировала команда мудаков? и нада же, приделали мерзкий ViewBag, дибильные Editor/Display шаблоны, вот же мерзкие хоббитцы МСУЯ тебя не понимаю, ты скачешь как кузнечик по кустам и не можешь определиться с истиной. Может хорош писать гавнокод и пора включать голову? вот именно я включаю голову, и стараюсь использовать инструмент так, как его задумывали. а ты же ушёл с головой в теорию. и вместо того, чтобы решать задачи, решаешь как уложить в теоретические рамки, которые сам же для себя и воздвиг. МСУВ моём варианте никаких дополнительных танцев с бубнами не нужно, имеем честную модель, имеем прозрачный вью, имеем линейную логику инициализации модели. Всё настолько просто, насколько это можно себе представить. Зачем мне тут атрибуты, фильтры, шаблоны с Prop, волки и овцы? тебе хз. но вообще это стандартные инструменты, заложенные изначально и развивающиеся до сих пор. если бы эти штуки были бы неудачным решением, отсохло бы ещё на 2-ой версии. просто ты не умеешь ASP.NET MVC готовить. ты применяешь подход аналогичный в XAML, где может ты и плаваешь как рыба в воде. но ASP.NET MVC здесь вполне уместно применять то, что было предложено разработчиками. по большей части. с чем ты споришь, непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 08:10 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJackОтвет надоело, это в моем понимании пафос разработчика, который отвечает на вопрос - "Почему ты так делаешь" - "Надоело", Ответный пафос - "Уволен". как отличить хорошего админа от плохого? хороший весь рабочий день по большей части балдеет, плохой постоянно пашет, сетку понимаешь чинит. как отличить хорошего программиста от плохого? хороший сделает всё, чтобы меньше ипаться. плохой трудяжка будет херачить и копипастить сотни тысяч строк, вместо того, чтобы разочек включить голову. "надоело" -- это то, что программиста делает программистом. а за "уволен", пожизненный ярлык "самодур" без навыков самостоятельного мышления. слишком много умных книжек видемо начитались. эх.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 08:18 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
... ... вот ещё, подумалось, OWIN тогда получается вообще какая-то фигня, там же всё через словари и ключи организовано. никакой типизации! в топку! разрабов на костёр! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 08:41 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
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"надоело" -- это то, что программиста делает программистом. а за "уволен", пожизненный ярлык "самодур" без навыков самостоятельного мышления. слишком много умных книжек видемо начитались. эх.... Надоело - это то, что программиста делает гавном. Есть требования свыше от руководителя, есть архитектура, есть конкретная задача, есть сроки - сиди и пили. Надоело - иди коров паси. А "самодур" или "дуросам" - это всё детский сад, не иначе. Когда сам станешь руководителем, будешь принимать на работу людей и увольнять их, ставить задачи, контролировать выполнение, наказывать за фэкапы и прочие косяки, заслонять своих людей от нападков злого бизнеса, премировать и депримировать отличившихся и так далее - вот тогда и поговорим. А пока забейся в свой угол и пиши такой код, который говорят тебе дяди. Если не будешь этого делать - уволен нах. Самодеятельность и прочая феерическая манера поспорить с руководством о правильности кода - даже в детском садике пресекается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:46 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVostteJackОтвет надоело, это в моем понимании пафос разработчика, который отвечает на вопрос - "Почему ты так делаешь" - "Надоело", Ответный пафос - "Уволен". как отличить хорошего админа от плохого? хороший весь рабочий день по большей части балдеет, плохой постоянно пашет, сетку понимаешь чинит. как отличить хорошего программиста от плохого? хороший сделает всё, чтобы меньше ипаться. плохой трудяжка будет херачить и копипастить сотни тысяч строк, вместо того, чтобы разочек включить голову. "надоело" -- это то, что программиста делает программистом. а за "уволен", пожизненный ярлык "самодур" без навыков самостоятельного мышления. слишком много умных книжек видемо начитались. эх.... ответ делитанта - хороший админ будет повышать компетенции в свободное время (это как минимум). хороший программист сделает все что бы ипаться в будущем менше - что бы в дальнейшем сопровождать систему было проще. (сопровождение это не только правка багов но и развитие!). Если после хорошоего программиста для внесения изменений в структуру БД придется переписать 25 методов контролера и протестировать правильность начитки данных во все ViewBag - это плохой программист. "надоело" - это ответ не делающий ни кого программистом - а только подтверждаетон лентяй и самодур. На это соответствующая реакция. Ответ - "я не буду так делать, а буду по другому потому что ..... " это ответ достойный профессионала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 12:49 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Хорош цепляться к словам) я ж не написал просто надоело и не хочу. а добавил причину, потому что мне так показалось, возникли сомнения . Если кто то считает что это не причина, это его воля так судить и думать я что плохой программист т.к. можно в след раз и не слушать меня. handmadeFromRu...я раньше также в модель прокидывал, но надоело. Ощущение искусственности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 13:16 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, Да уже не к вам вопрос, коллега hVostt развил свою мысль на основе вашего высказывания. Про то что вы плохой программист ни кто не говорил, мысль была что так делать не хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 13:48 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
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. Данная модель представления как нельзя лучше и полно описывает представление. Представление может быть любым. И WebForms, и MVC, и XAML, и WinForms, и так далее (либо с минимальными (!) переделками). Вот конкретно для MVC моё UI, а конкретно - комбобокс для состояний. Код: c# 1. 2. 3. 4. Как видишь, никаких левых вью багов, шаблонов, фильтров и прочей ереси. Что может быть проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 13:51 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVostt... ... вот ещё, подумалось, OWIN тогда получается вообще какая-то фигня, там же всё через словари и ключи организовано. никакой типизации! в топку! разрабов на костёр! к сожалению не работал, не знаю. Но при этом есть большой опыт работы с мапами (например HashMap) на Java - это тот же ViewBag из ASP.NET MVC, по крайней мере технически должен быть реализован так же. Ад кромешный. Мест для ошибок, достаточно простых - при достаточно! Постоянное приведение типов не способствуют увеличению быстродействия - а так же как правило колючем выступает строка - тут всегда есть место где ошибиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:32 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Так это, никто не хочет мне объяснить, почему я не могу сделать так, как я хочу ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 17:07 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
Короче, я как всегда был невнимателен и указал IngId вместо GoodId всем спасибо за внимание. Не ожидал, что я буду причиной таких дискуссий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 18:36 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
А что будет, если во ViewBag будет ключ 'АБВГД' со значением "viewbag - не тру" и в модели будет свойство 'АБВГД' со значением "типизация решает", для которого мы захотим создать список - что будет в списке? По поводу передачи списков через вьюбаг - это конечно адский треш - кому вообще в голову взбрело так делать..? Догадаться можно о таком поведении, но выглядит это... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 05:12 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
ууууууу, крутота. В хелпере @Html.DropDownListFor нет ни одной перегрузки без входного параметра SelectList, но его надо выставить в null, если коллекция определена в вьюбаге. Логично? А если для читаемости заменить null, на коллекцию из вьюбага? Ну так, чтоб след был виден? Список появится, но признак выбранного элемента не отрендерится - получим пустой комбобокс. Это если свойство модели и ключ вьюбага будут иметь одинаковые значения. Логично? Возникает вопрос (hVostt, ты ходишь на собеседования?) - возможно ли сломать приложение (работающее), просто передав во ViewBag какое-то значение с произвольным ключом? DropDownListFor - это нахрен закладка какая-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 05:27 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueПо поводу передачи списков через вьюбаг - это конечно адский треш - кому вообще в голову взбрело так делать..? А в чём ты видишь проблему? Я проблемы не вижу. Вьюбэг универсален. Но никто не заставляет, можешь во вью-модель впихнуть. Почему-то вообще никого не парит, когда надо подтягивать данные во всякие дропдауны динамически, делать это с помощью насквозь нетипизированного JavaScript — это выглядит вполне естественно и пользуются этим миллионы. Но когда речь заходит про динамический вьюбэг начинаются когнитивные процессы в мозгу, выливающиеся в размазню по кафелю MonochromatiqueВ хелпере @Html.DropDownListFor нет ни одной перегрузки без входного параметра SelectList, но его надо выставить в null, если коллекция определена в вьюбаге. Логично? У родных хелперов вообще проблем гораздо больше, чем эта. Самая большая проблема — это перегрузки. В данном случае это зло. Сделали бы билдеры в виде fluent chaining, всё было бы логично до немогу. Но что ж поделаешь, сделали так. При проектировании ошибок не избежать. Опять же родными дропдаунами никто пользоваться не заставляет. Всегда можно сотворить свой расово верный и правильный. MonochromatiqueВозникает вопрос (hVostt, ты ходишь на собеседования?) - возможно ли сломать приложение (работающее), просто передав во ViewBag какое-то значение с произвольным ключом? DropDownListFor - это нахрен закладка какая-то. Возможно. Но и через типизированную модель сломать работающее приложение тоже можно. Например, передав в несколько полей типа string по гигу текста. А почему нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 14:48 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttMonochromatiqueПо поводу передачи списков через вьюбаг - это конечно адский треш - кому вообще в голову взбрело так делать..? А в чём ты видишь проблему? Я проблемы не вижу. Вьюбэг универсален. Но никто не заставляет, можешь во вью-модель впихнуть. Почему-то вообще никого не парит, когда надо подтягивать данные во всякие дропдауны динамически, делать это с помощью насквозь нетипизированного JavaScript — это выглядит вполне естественно и пользуются этим миллионы. Но когда речь заходит про динамический вьюбэг начинаются когнитивные процессы в мозгу, выливающиеся в размазню по кафелю MonochromatiqueВ хелпере @Html.DropDownListFor нет ни одной перегрузки без входного параметра SelectList, но его надо выставить в null, если коллекция определена в вьюбаге. Логично? У родных хелперов вообще проблем гораздо больше, чем эта. Самая большая проблема — это перегрузки. В данном случае это зло. Сделали бы билдеры в виде fluent chaining, всё было бы логично до немогу. Но что ж поделаешь, сделали так. При проектировании ошибок не избежать. Опять же родными дропдаунами никто пользоваться не заставляет. Всегда можно сотворить свой расово верный и правильный. MonochromatiqueВозникает вопрос (hVostt, ты ходишь на собеседования?) - возможно ли сломать приложение (работающее), просто передав во ViewBag какое-то значение с произвольным ключом? DropDownListFor - это нахрен закладка какая-то. Возможно. Но и через типизированную модель сломать работающее приложение тоже можно. Например, передав в несколько полей типа string по гигу текста. А почему нет? Почему ищем во вьюбаге я понять не могу?? Надо искать сразу в контексте по условиям одним-разрабам-известным. По похожему названию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 15:15 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueПочему ищем во вьюбаге я понять не могу?? Надо искать сразу в контексте по условиям одним-разрабам-известным. По похожему названию. По одному и тому же ключу во ViewBag и в Model, хелпер DropDownList предполагает следующее: в Model хранится значение выбранного элемента из списка в ViewBag хранится коллекция SelectListItem со всеми элементами для списка Такая логика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 15:23 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
hVosttMonochromatiqueПочему ищем во вьюбаге я понять не могу?? Надо искать сразу в контексте по условиям одним-разрабам-известным. По похожему названию. По одному и тому же ключу во ViewBag и в Model, хелпер DropDownList предполагает следующее: в Model хранится значение выбранного элемента из списка в ViewBag хранится коллекция SelectListItem со всеми элементами для списка Такая логика. А мне вот интересно - такое поведение хелпера где-то описано? Я вот вчера потратил на это времени - ну явно больше, чем стоит тратить на хелпер. Конечно, если бы сразу стал шерстить форум - получилось бы меньше. Но я полез в инет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 15:41 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueА мне вот интересно - такое поведение хелпера где-то описано? Я вот вчера потратил на это времени - ну явно больше, чем стоит тратить на хелпер. Конечно, если бы сразу стал шерстить форум - получилось бы меньше. Но я полез в инет. Я обычно, если мне что-то не ясно, зырю исходники, благо они в открытом доступе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 19:43 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueЯ вот вчера потратил на это времени - ну явно больше, чем стоит тратить на хелпер. Да, родные хелперы я не использую, так как мне не нравится, как они устроены (про перегрузки уже говорил). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2015, 19:47 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
eJackДело в том что вы прибил гвоздями запросы к БД в методах контроллера - если сегодня вы часть информации получаете из БД а завтра из стороннего сервиса, вы все методы перепишите (причем нескоьлко раз). Например у вас есть метод insert (GET) и insert(POST): .... то в пост методе вам придется повторить все ваши выкруты для ViewBag .... и так для update методов и других. В случае не использования ViewBag просто передадите модель во View(Model) и все. Всю ветку не осилил пока, но есть вопрос. Являюсь начинающим разработчиком ASP.NET MVC, опытных товарищей из сотрудников нет, поэтому разбираюсь сам. Поддерживаю точку зрения, что распихивать данные для listbox'ов в разные области данных - это не удобно, потому что потом фиг разберешься, откуда они там берутся. Но вот вопрос: в данном случае предлагается гонять пост-запросами справочники от клиента к серверу? Зачем? Или я не правильно понял фразу "В случае не использования ViewBag просто передадите модель во View(Model) и все."? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2015, 13:04 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
PallariseJackДело в том что вы прибил гвоздями запросы к БД в методах контроллера - если сегодня вы часть информации получаете из БД а завтра из стороннего сервиса, вы все методы перепишите (причем нескоьлко раз). Например у вас есть метод insert (GET) и insert(POST): .... то в пост методе вам придется повторить все ваши выкруты для ViewBag .... и так для update методов и других. В случае не использования ViewBag просто передадите модель во View(Model) и все. Всю ветку не осилил пока, но есть вопрос. Являюсь начинающим разработчиком ASP.NET MVC, опытных товарищей из сотрудников нет, поэтому разбираюсь сам. Поддерживаю точку зрения, что распихивать данные для listbox'ов в разные области данных - это не удобно, потому что потом фиг разберешься, откуда они там берутся. Но вот вопрос: в данном случае предлагается гонять пост-запросами справочники от клиента к серверу? Зачем? Или я не правильно понял фразу "В случае не использования ViewBag просто передадите модель во View(Model) и все."? Здесь про клиента вообще речь не шла. Только о сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2015, 15:13 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueЗдесь про клиента вообще речь не шла. Только о сервере. eJack предложил после пост-запроса передать в представление модель, уже содержащую данные для listbox'ов, при этом имея ввиду, что эти данные в модели уже будут, в отличие от viewbag ("то в пост методе вам придется повторить все ваши выкруты для ViewBag") Вот мне и стало интересно, каким макаром при использовании модели избежать повторных выкрутасов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2015, 15:28 |
|
||
|
Хочу через ViewBag передать данные во View, но просят привязать источник данных.
|
|||
|---|---|---|---|
|
#18+
PallarisMonochromatiqueЗдесь про клиента вообще речь не шла. Только о сервере. eJack предложил после пост-запроса передать в представление модель, уже содержащую данные для listbox'ов, при этом имея ввиду, что эти данные в модели уже будут, в отличие от viewbag ("то в пост методе вам придется повторить все ваши выкруты для ViewBag") Вот мне и стало интересно, каким макаром при использовании модели избежать повторных выкрутасов Я, видимо пропустил эту часть, так как искал решение своей проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2015, 16:05 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1356691]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
120ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 449ms |

| 0 / 0 |
