MVC 3 - используя рефлексию, чтобы выбрать частичное представление - злоупотребление? - PullRequest
0 голосов
/ 24 июля 2011

Я думаю, что я наконец-то начинаю получать MVC 3, но если кто-то сможет подтвердить этот подход, мне будет лучше.

У меня есть веб-сайт, скажем, и у меня есть модели для NormalPage и EventPage.EventPage имеет EventDate, но это единственное отличие, и давайте просто скажем, что EventPage наследуется от NormalPage, если это облегчает жизнь.

Два представления обрабатывают эти две (слегка) разные модели: одна просто показывает страницу, а другая отображает дату и показывает форму регистрации.У них разный дизайн, поэтому разные представления расположены по порядку.

Все учебники скажут: «Да, теперь напишите два контроллера: События и Страницы».Это кажется глупым - оба просто передают модель в (соответствующий) вид.Я могу использовать один «Page» контроллер и выбрать соответствующий вид, используя отражение, верно?typeof(Model), как только я извлечу данные из базы данных, может сказать мне, следует ли мне получать представление Event или представление Page.

Это глупо, или требует неприятностей, или неправильно использует фреймворк?Благодарю.

1 Ответ

3 голосов
/ 24 июля 2011

Что вы намерены делать с отражением?Вам не нужно ничего делать, чтобы динамически возвращать представления.Из любого действия контроллера вы можете вернуть View("EventView", eventModel) или View("NormalView", normalModel), и он вернет это представление.

С другой стороны, я не уверен, какие руководства предложили, что типично иметь одно представление на контроллер, но это не так.Типично иметь несколько представлений и действий в одном контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...