1

Возможно ли настроить веб-приложение ASP.NET Core для использования страниц блейд-серверов EditorTemplate, которые скомпилированы в библиотеку классов/отдельную сборку?EditorTemplate шаблоны в отдельной сборке

В качестве примера, следующий вопрос подробно описывает, как ViewComponent может быть скомпилирован в библиотеку классов. К сожалению, я не могу найти никакой информации о том, как сделать то же самое с страницами EditorTemplate.

ASP.NET MVC 6: view components in a separate assembly

ответ

2

решаемые это с помощью от pranavkm на GitHub. Эти шаги, которые я Требовались следующим образом:

В веб-приложения: в ConfigureServices() добавить сборку модуля класса в качестве поставщика файла (получить сборку через тип любого класса или интерфейса в сборке):

var library = typeof(Library.SomeClass).GetTypeInfo().Assembly; 
services.AddMvc() 
    .AddRazorOptions(options => 
    { 
     options.FileProviders.Add(new EmbeddedFileProvider(library)); 
    }); 

В модуле класса: убедитесь, что структура каталогов, содержащая ваши шаблоны редактора, такая же, как и в вашем веб-приложении Views\Shared\EditorTemplates.

В модуле класса: вставить изображения бритвенных как ресурс, добавив следующие строки в project.json:

"buildOptions": { 
    "embed": "Views/**" 
} 
+0

Какой зависимость необходимы для библиотеки классов? Как опыт работы с инструментами vs2017 при работе внутри этих файлов cshtml против работы в файлах вида в реальном проекте mvc - любая разница? –

+1

Intellisense отлично работает (хотя см. Http://stackoverflow.com/questions/42804844/class-library-lost-intellisense-in-vs2017-after-net-core-mvc-auto-migration). После внесения изменений необходимо вручную перестроить - Roslyn автоматически не подбирает вещи. Предварительная компиляция представлений бритвы в библиотеке классов также довольно нарушена на данный момент. На фронте зависимостей просто добавить ссылку на 'Microsoft.AspNetCore.Mvc' должно быть достаточно. – Polynomial

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