Использование основного макета Spark с представлением Razor

Я работаю над проектом, в котором Spark использовался как движок View, и было принято решение переключиться на Razor.

Мне удалось заставить Razor и Spark хорошо работать бок о бок в одном проекте. Единственная проблема заключается в том, что когда я создаю представление Razor, оно, очевидно, не наследует макет, а стили формируют мастер-макет Spark.

Есть ли в любом случае я могу сделать это без создания дубликата Razor?

2 ответа

Решение

Это будет невозможно, потому что хотя названия могут быть схожими (разделы / частичные и т. Д.), Детали реализации существенно различаются, поскольку системы рендеринга в Spark и Razor/WebForms различаются по стратегии. Razor выполняет рендеринг с зависимостями от самого ASP.NET, чтобы получить проанализированный результат, тогда как Spark использует свою собственную 3-проходную систему рендеринга для создания файлов классов для представлений.

Лучше всего скопировать основной макет, преобразовать его в cshtml со всеми различными семантиками, реализованными для Razor, а затем в каждом представлении, которое вы конвертируете в Razor, просто указать его на новую главную страницу. Это действительно не будет стоить времени, потраченного на то, чтобы получить пользовательскую прокладку, учитывая, что опция копирования-вставки в этом случае не требует много технологий и гарантированно будет работать.

Надеюсь, это поможет,
обкрадывать

Самым простым (хотя и потенциально трудоемким, в зависимости от сложности вашего основного вида) решением было бы создание дублированного макета.

В противном случае, вот сообщение в блоге о смешивании представлений и макетов WebForms и Razor: http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx. Это в значительной степени хак, но, вероятно, его можно адаптировать для работы со Spark.

Другие вопросы по тегам