2011-05-13 3 views
1

Не должен ли контроллер в MVC полностью не знать, как будут отображаться данные, которые он дает представлению?mvc selectlist разделение проблем

Мой вопрос относится к SelectList. Должен ли контроллер быть достаточно умным, чтобы знать, что данные будут представлены в раскрывающемся списке? Или он должен просто дать представление, через модель представления, список элементов, и пусть представление обрабатывает его, тем не менее, оно нуждается?

+0

Вероятно, дубликат http://stackoverflow.com/questions/526641/what-to-put-in-your-viewmodel – Paul

+0

Возможно, этот вопрос слишком субъективен, чтобы быть полезным ... – Paul

ответ

1

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

+0

согласны ли вы с первый абзац или второй? :). Я лично считаю, что контроллер, делающий предположение о том, как информация будет отображаться (в списке выбора), недостаточно разделен. Я понимаю, что диспетчеру необходимо предоставить то, что нужно мнению, но это не растягивается, зная, как он будет его использовать. Определение данных как SelectList слишком много знает по моему мнению. Не то, чтобы SelectList не был полезен, мне просто интересно, строго ли это MVC. – Paul

+0

@Paul - Я согласен с первым абзацем! :) Да, если контроллер слишком «умный», с тем, что нужно мнению, это очень легко (я знаю, что я делал это слишком часто), чтобы увлечься и существенно удалить ответственность за визуализацию из представления. Обычно, создавая сильно типизированный ViewModel и заполняя его, а затем передавая его в представление, это чистый путь и абстрагирует любую логику визуализации от контроллера. –

1

Я вижу, что вы получаете. Это зависит от того, как вы смотрите на SelectList. Список выбора - это просто структура данных, оптимизированная для этого конкретного использования. Фактически вы можете использовать SelectList для чего-то еще, если хотите. В этом смысле все еще существует четкое разделение проблем.

+0

Согласовано, SelectList - это просто структура данных, но по своей природе она построена для определенной цели, поскольку она имеет значение Text и значение Value. Это кричит: «Я иду прямо в ниспадаю!». И снова я не отрицаю его полезности, просто интересуюсь чистому разделению MVC. Спасибо за комментарий. – Paul

Смежные вопросы