2009-09-15 5 views
0

Я переношу приложение из WebForms в MVC.Asp.Net MVC UserControl

У меня есть WebForms UserControl, который используется по всему сайту, и который содержит презентационную и бизнес-логику, и, в частности, некоторые «initizliation» логика (в Page_Load)

Мое понимание MVC UerControls является то, что они не имеют и поэтому не содержит логики, и логика добавляется к контроллеру страницы просмотра, к которой добавлен UserControl.

Теперь я не хочу писать логику инициализации в моей ViewPage, так как этот UserControl появляется на нескольких страницах, что дублирует логику.

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

Есть ли у меня другие возможности?

ответ

0

Bleh, я думаю, я должен сделать это правильно и передать объект через viewdata моего контроллера, а не взломать его.

+0

Решено это, сделав это правильно и создав объект, чтобы замаскировать мою логику представления. Сейчас намного чище. –

1

Это хороший случай использования хелпера RenderAction html. Намного лучше, возьмите фьючерсы Microsoft MVC и используйте метод RenderAction. В основном это позволяет вам вызвать действие контроллера в представлении, которое больше похоже на работу UserControls, чем на RenderPartial.

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