2013-08-27 3 views
0

У меня есть старое веб-приложение Umbraco, которое было обновлено до версии v6 в начале этого года.Внедрение формы MVC внутри старой архитектуры шаблонов шаблонов

Он использует пользовательские элементы управления .NET ascx и ваши стандартные страницы .master, как и следовало ожидать.

Теперь мне нужно создать совершенно новую страницу, которая по сути является формой бронирования для мероприятия.

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

ответ

1

Вы можете создать форму в файле .cshtml, а затем добавить ее в качестве макроса Umbraco. Но форма не могла использовать подход MVC, это должно было быть базовым встроенным бритвом и условными операторами. Это прекрасно, но ограничивать. Разумеется, вы могли бы также отправить форму на действие контроллера, но это немного сложно, так как оно обрабатывает форму из цикла событий страницы.

В противном случае вы спрашиваете, можете ли вы ссылаться на действие на главной странице, поэтому нет. Я говорю «на самом деле», потому что, конечно, вы можете, но это неестественно и сделает проект кошмаром для всех, кто мог бы его забрать. Здесь есть статья о том, как вы можете это сделать: http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx

Также есть Umbraco MvcBridge package. Это было чем-то большим количеством разработчиков, которые использовались до того, как они могли напрямую работать в MVC. По сути, вы можете настроить макросы, указывая на действия и т. Д., Но все же в режиме веб-форм.

Это отличный дом на полпути, но я не уверен в совместимости с v6.

+0

Вы порекомендовали бы просто создать новую отдельную страницу макета бритвы, а затем создать для нее виды, а не пытаться использовать бритву в главной странице? На данный момент у меня слишком много зависимостей для переноса всего на MVC. Я не могу оправдать стоимость клиента. – krisdyson

+0

В вашем случае это сводится к времени (которое в глазах клиента сводится к стоимости). Вы хотите использовать mvc/razor, но в режиме веб-форм уже есть отлично функционирующий сайт. Это отстой, но профессиональная вещь заключалась бы в том, чтобы либо продолжать развиваться в режиме webforms, либо начать переходить к использованию макросов cshtml. Я определенно не рекомендовал бы создавать два отдельных метода макета, потому что тогда вы получите проблему, когда клиент хочет, чтобы ваши функции MVC отображались на главной странице или наоборот. – Digbyswift

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