Можно ли повторно использовать частичные представления для нескольких проектов в ASP.NET MVC?

Я знаю, что ASP.NET MVC 3 не поддерживает повторное использование областей, что было бы очень удобно, скажем, для пользовательских областей администраторов веб-приложений, но как насчет частичных представлений?

Скажем, у меня есть пейджер "контроль" как Razor (или же WebFormViewEngineне имеет значения) частичный вид, который я могу легко использовать внутри MVC приложение.

Возможно ли повторно использовать его в нескольких приложениях MVC, кроме как путем создания частичного представления в новом приложении и копирования кода?

2 ответа

Решение

В фреймворке нет ничего, что позволяет вам это делать. Вы можете взглянуть на переносимые области MVCContrib, которые позволяют встраивать и повторно использовать представления между несколькими приложениями ASP.NET MVC. Вы также можете найти следующий пост в блоге полезным.

Отказ от ответственности: оба эти подхода основаны на написании собственного VirtualPathProvider, который не работает с предварительно скомпилированными приложениями ASP.NET. Поэтому, если вы намерены предварительно скомпилировать приложение перед отправкой, не используйте его. Лично я нахожусь в этой ситуации, и в итоге я написал собственный пакет NuGet, который содержит все необходимые представления и сборки, содержащие соответствующие им модели представлений, и все, что нужно сделать разработчику, - это установить пакет NuGet из централизованного местоположения. интранет / интернет.

В книге О'Рейли "Программирование ASP.NET MVC 4" Джесса Чоука есть глава, описывающая, что вам нужно. "ГЛАВА 15 - Многоразовые компоненты пользовательского интерфейса"

По сути, вы создаете проект библиотеки классов со своими представлениями. Вы должны установить RazorGenerator и установить его как пользовательский инструмент в свойствах файлов.cshtml. Это сгенерирует код C# из файлов.cshtml. Теперь, чтобы найти представления вне стандартного пути поиска в приложении MVC, вам нужно использовать пакет Nuget PrecompiledMvcEngine.

Книга очень хорошо написана, и вы можете найти пошаговую информацию, как это сделать.

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