Изменение папки root для областей в ASP. NET основном приложении не работает (AddRazorOptions не работает) - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь изменить папку root по умолчанию для областей в приложении ASP. NET core 3.1. Я хочу указать / View / Web / Areas как новый root. Я делаю это здесь:

public void ConfigureServices(IServiceCollection services)
{
  services.AddRazorPages();
  services.AddMvc().ConfigureApplicationPartManager(ConfigureApplicationParts);

  services.AddMvc().AddRazorOptions(options =>
  {
    options.AreaViewLocationFormats.Add("/View/Web/Areas/{2}/Pages/{1}/{0}.cshtml");
    //options.AreaPageViewLocationFormats.Add("/View/Web/Areas/{2}/Pages/{1}/{0}.cshtml");
    //options.AreaViewLocationFormats.Add("/View/Web/Areas/{2}/Pages/{0}.cshtml");        
    //options.AreaPageViewLocationFormats.Add("/View/Web/Areas/{2}/Pages/{0}.cshtml");
    //options.AreaViewLocationFormats.Add("/View/Web/Areas/{2}");        
    //options.AreaPageViewLocationFormats.Add("/View/Web/Areas/{2}");     
  });
}

Как видите, я пробовал несколько разных вариантов, но мне не удалось найти мои страницы Razor, например, в

/View/Web/Areas/PlaygroundCommand3/Pages/Index.cshtml

Одна вещь, которую я выяснил, заключается в том, что метод Configuration должен выполняться до того, как будет вызвано действие по добавлению параметров. Я думаю, из-за этой последовательности не добавляется конечная точка для новой области root. По крайней мере, коллекция конечных точек не содержит пути, указывающего на пользовательское местоположение.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  ...
  app.UseHttpsRedirection();
  app.UseStaticFiles();
  app.UseRouting();
  app.UseAuthorization();
  app.UseEndpoints(endpoints =>
  {
    endpoints.MapRazorPages();
  });
}

В результате вызова MapRazorPages() получаются следующие конечные точки:

/Areas/{2}/Pages/{1}/{0}.cshtml
/Areas/{2}/Pages/Shared/{0}.cshtml
/Areas/{2}/Views/Shared/{0}.cshtml
/Pages/Shared/{0}.cshtml
/Views/Shared/{0}.cshtml

Местоположение, которое я добавление с помощью действия AddRazorOptions отсутствует.

Я уже некоторое время пытаюсь поискать в Google, но пока не понимаю. Любая помощь высоко ценится.

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