Совместное использование компонентов представления в нескольких проектах - PullRequest
0 голосов
/ 19 октября 2018

У меня довольно большой компонент вида, который я хочу использовать в двух разных проектах MVC ядра asp.net.До сих пор я нашел два подхода для достижения этой цели:

  1. Инкапсуляция в DLL
  2. Создание общего (фиктивного) веб-проекта

Каковы компромиссы между этими двумя подходами?Мой компонент представления имеет вложенные компоненты представления, и для реализации некоторых динамических функций требуется java-скрипт.

1 Ответ

0 голосов
/ 19 октября 2018

В ASP.NET Core 2.1 и более поздних версиях вы хотите использовать Razor Class Libraries (RCL) , которые были разработаны для этого самого сценария.

RLC позволяет создавать повторно используемый пользовательский интерфейс с видами бритвы,страницы, контроллеры, модели страниц, просмотр компонентов и моделей данных.Дополнительным преимуществом является то, что представления (даже частичные) могут быть переопределены основным приложением, где разметка Razor (файл .cshtml) имеет преимущество, позволяя вносить изменения для каждого приложения без изменения исходного общего компонента.

  • Из VisualВ меню Studio Файл выберите Создать> Проект .
  • Выбрать Базовое веб-приложение ASP.NET .
  • Имя библиотеки(например, «RazorClassLib»)> OK .Чтобы избежать конфликта имен файлов с созданной библиотекой представлений, убедитесь, что имя библиотеки не заканчивается на .Views.
  • Убедитесь, что выбран ASP.NET Core 2.1 или более поздней версии.
  • Выберите Библиотека классов Razor > OK .
  • Ссылка на RCL из основного приложения (вы также можете создать общую библиотеку как пакет NuGet )
  • Запустите приложение и посетите /MyFeature/Page1

Прочитайте полную документацию

...