Что у меня есть?
У меня есть веб-приложение ASP.NET Core 2.2, которое ссылается на библиотеку классов Razor ( RCL ).
Что такое документыскажем?
Согласно документам (https://docs.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-2.2&tabs=visual-studio#override-views-partial-views-and-pages):
Когда в веб-приложении и в RCL * 1014 обнаружены вид, частичный вид или страница бритвы* разметка Razor (файл .cshtml) в веб-приложении имеет приоритет.
Что я хочу?
Я хочу изменить это поведение, чтобы оно было наоборот.
- Сначала разрешите представление из RCL
- Если выше не найдено, используйте представление из веб-приложения
Что я пробовал?
Изменение порядка ApplicationPart (Не работает ?)
mvcBuilder.ConfigureApplicationPartManager(x =>
{
var template = x.ApplicationParts[x.ApplicationParts.Count - 2];
var templateViews = x.ApplicationParts[x.ApplicationParts.Count - 1];
x.ApplicationParts.Remove(template);
x.ApplicationParts.Remove(templateViews);
x.ApplicationParts.Insert(0, template);
x.ApplicationParts.Insert(1, templateViews);
foreach (var part in x.ApplicationParts)
{
Log.Warning("ApplicationPart: {part}", part.Name);
}
});
ApplicationPart: Template
ApplicationPart: Template.Views
ApplicationPart: MyWebApplication
ApplicationPart: Microsoft.AspNetCore.Identity.UI
ApplicationPart: Microsoft.AspNetCore.SpaServices
ApplicationPart: Microsoft.AspNetCore.SpaServices.Extensions
ApplicationPart: Microsoft.AspNetCore.Mvc.TagHelpers
ApplicationPart: Microsoft.AspNetCore.Mvc.Razor
Изменение IViewLocationExpander
(Не работает ?)
Дублирование существующих ViewLocations и добавление префиксов к представлениям с названием сборки.
Мой вопрос
- Кто-нибудь знает, как изменить это поведение?