2009-09-09 2 views
2

Итак, я старый парень в форме веб-форм и новичок в MVC (в общем, не только ASP.NET). Мои взгляды начинают сильно напоминать старый добрый классический ASP. Не то, чтобы я добавлял любую бизнес-логику или что-то еще, но больше логики представления. Я получаю много <% %> тегов и if/else операторов для определения ссылок на показ или используемых стилей.ASP.NET MVC: Я делаю это правильно?

Я также думал о том, чтобы определить стили или ссылки в контроллере и установить их на модели, но звучит как нарушение цели MVC.

В конечном итоге я игнорирую <% %>, чтобы убедиться, что мой HTML хорошо сформирован.

Я хочу услышать ваше мнение. Являются ли ваши взгляды такими же, как мои? Я делаю что-то неправильно?

ответ

2

Если у меня есть тонна логики представления, я пытаюсь переместить это расширение с класса HtmlHelper.

+0

поэтому вы создаете метод расширения для каждого случая? –

+0

Это полностью зависит от случая и сложности, также как упоминал Брайан, Partial Views может помочь очистить вещи. – mxmissile

+0

Действительно, мои взгляды теперь намного чище. Спасибо ... –

1

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

Я нахожу, что если ситуация выглядит слишком старой школьной ASP, пришло время рефакторировать. Удивительно, что вы можете очистить до класса помощника или частичного просмотра, или просто повторить, используя что-то более сжатое.

Редактировать: Кроме того, если он ищет слишком старый школьный ASP, возможно, у вас есть логика в вашем представлении, которая там не принадлежит.

0

Обычно я создаю класс ViewModel для каждого представления, содержащий любую логику, связанную с конкретным видом. Это хорошо для ситуаций, когда результатом условия является просто простой тег DIV или SPAN, который на самом деле не гарантирует их собственного расширения или частичного представления.

Я нахожу, что он очистит много классического ASP'ish взгляда в моих взглядах.

См. Stephen Walther's blog для получения дополнительной информации об этом подходе.

+0

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

0

Да, вы делаете это правильно. ASP.NET MVC не является улучшением по сравнению с классическими веб-формами во всех отношениях. У этого есть свои преимущества и недостатки («суп-суп», как вы обнаружили, являющийся одним из недостатков).

Есть несколько способов облегчить боль (перемещение как логики в модель, HTML-помощники, частичные виды и т. Д.), Но этого трудно избежать.

+0

Можете ли вы представить несколько примеров того, какую логику вы добавляете к модели? –

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