Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC 3/4 ViewModel -- разделение ответственности / 13 сообщений из 13, страница 1 из 1
29.04.2013, 10:56
    #38243591
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
Во вью надо передать модель для редактирования, допустим, это делает пара ActionResult GET Edit(id) / POST Edit(ViewModel)
Но большая часть полей нужна только для вывода информации о редактируемом объекте (т.е. редактируется не весь объект, а его часть).
Логично предположить, что рендериться поля будут как-то так:

@Html.EditorFor(x => x.Prop)

, а выводится либо так

@Html.DisplayFor(x => x.DispProp)

или даже так

@Model.DispProp

По стандартной схеме, при сабмите, если пользователь накосячил и валидация не прошла, Action должен вернуть модель на повторное редактирование с сообщениями об ошибке.

Подхожу к вопросу. При сабмите мы передаем в Action только редактируемые поля, информация для отображения теряется, и её надо будет восстанавливать для повторного редактирования. И все это в одной и той же модели. Плохо? Как оно с точки зрения архитектуры? Может посоветуете чего?
...
Рейтинг: 0 / 0
29.04.2013, 11:05
    #38243605
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
Для себя давно уже понял, что эдиторы моедлей в mvc - от лукавого. Лучше сразу писать по-человечески, чтобы потом не упороться на грабли.
...
Рейтинг: 0 / 0
29.04.2013, 11:06
    #38243609
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
МСУ,

А можно по-подробней?
...
Рейтинг: 0 / 0
29.04.2013, 11:11
    #38243621
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
Например, как ты будешь юзать эдитор модели, если у тебя будет вложенный класс?
...
Рейтинг: 0 / 0
29.04.2013, 11:14
    #38243629
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
МСУ,

@Html.EditorFor(x => x.ComplexProperty.Prop)

если typeof(ComplexProperty) умеет new() проблем не будет.

так что за магия? признавайся? как решаешь?
...
Рейтинг: 0 / 0
29.04.2013, 11:28
    #38243651
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
hVosttМСУ,

@Html.EditorFor(x => x.ComplexProperty.Prop)

если typeof(ComplexProperty) умеет new() проблем не будет.

так что за магия? признавайся? как решаешь?

Ты издеваешься?

1. EditorFor для модели, а не для свойства
2. EditorFor должен автоматом подхватывать все подмодели и отстраивать UI. Что делать он не умеет.
3. Перечислять руками свойства не вариант, смысл эдитора теряется. Особенно, когда мне нужно расставить атрибуты в нужной последовательности
...
Рейтинг: 0 / 0
29.04.2013, 11:34
    #38243665
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
МСУ,

ещё как умеет! :) делаешь свой вью в EditorTemplates для нужного типа

но ты лучше расскажи про своё решение, уверен многим пригодится.
...
Рейтинг: 0 / 0
29.04.2013, 11:35
    #38243669
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
hVostt, я тебя запутал

Вот это
hVostt@Html.EditorFor
я прочитал как
hVostt@Html.EditorFor Model

Я хотел сказать, что EditorForModel зло.
...
Рейтинг: 0 / 0
29.04.2013, 11:38
    #38243674
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
МСУ,

я так понимаю, ты предлагаешь чистый AJAX, и никаких пробросов лишних данных?
...
Рейтинг: 0 / 0
29.04.2013, 11:40
    #38243679
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
Я предлагаю забить на EditorForModel, т.к. это поделка.
...
Рейтинг: 0 / 0
29.04.2013, 11:48
    #38243693
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
МСУ,

почаму? для bootstrap, например, можно написать универсальный эдитор для form-horizontal форм, работающий для всех объектов. на этапе разработки самое то.

так что с ViewModel? как быть с редактируемыми и не редактируемыми данными? уместно все пихать в одну модель и разгребать одно от другого? затыкивать все поля для отображения во ViewData как-то не по феншую вообще. совсем. или отдавать во вью при любом раскладе DTO, что тоже как-то не очень.
...
Рейтинг: 0 / 0
29.04.2013, 12:00
    #38243710
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
hVosttМСУ, почаму? для bootstrap, например, можно написать универсальный эдитор для form-horizontal форм, работающий для всех объектов. на этапе разработки самое то.
Можно, но это ж будет уже не штатный EditorForModel. А именно про него речь.

hVosttтак что с ViewModel? как быть с редактируемыми и не редактируемыми данными? уместно все пихать в одну модель и разгребать одно от другого? затыкивать все поля для отображения во ViewData как-то не по феншую вообще. совсем. или отдавать во вью при любом раскладе DTO, что тоже как-то не очень.
ViewData это абсолютное зло. Всё должно быть в модели.
...
Рейтинг: 0 / 0
29.04.2013, 12:07
    #38243727
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASP.NET MVC 3/4 ViewModel -- разделение ответственности
hVosttя так понимаю, ты предлагаешь чистый AJAX, и никаких пробросов лишних данных?
AJAX или HiddenFor
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC 3/4 ViewModel -- разделение ответственности / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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