Можно ли повторно использовать частичные представления для нескольких проектов в ASP.NET MVC? - PullRequest
4 голосов
/ 09 марта 2011

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

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

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

Ответы [ 2 ]

7 голосов
/ 09 марта 2011

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

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

4 голосов
/ 26 марта 2014

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...