Какой лучший способ привязать данные ViewModel к главной странице в asp.net-mvc - PullRequest
1 голос
/ 24 сентября 2011

Я хочу динамически создать свое меню на главной странице, и я видел 2 разных подхода:

  1. Первый подход - использовать базовый контроллер, который загружает все данные модели общего представления в своем конструкторе. Это описано здесь

  2. Второй подход состоит в том, чтобы создать отдельный контроллер для этого и использовать его на главной странице, чтобы добавить определенные элементы просмотра на главную страницу, не загрязняя генерацию обычного просмотра страницы:

    @Html.Action("Index", "Settings")
    

Один лучше другого? Есть ли здесь лучшая практика?

1 Ответ

3 голосов
/ 24 сентября 2011

Лично я предпочитаю второй подход, так как он позволяет обрабатывать меню независимо от основной логики. Используя дочерние действия, вы можете иметь совершенно отдельный жизненный цикл контроллера меню без необходимости иметь модель базового представления для абсолютно всех представлений, которые используют эту главную страницу. Наследование просто не подходит для этой ситуации, но, конечно, это не значит, что вы должны полностью исключить его. Каждый сценарий специфичен, и в зависимости от точных деталей (которые вы не указали для своего) могут быть разные подходы.

Только не думайте, что если Html.Action хорошо для одного сценария, это будет хорошо для всех. Могут быть некоторые специфические ограничения проекта, которые делают неуместными или могут достигать этого с помощью другого подхода.

Не существует универсального решения, которое будет работать во всех ситуациях. Иначе программистам бы не понадобилось: -)

...