2016-08-12 4 views
1

Я хочу создать область как следующую структуруASP.Net Ядро Уплотненный Область

  • Области
    • Админ
      • FrontEnd
        • Контроллеры
          • HomeController.cs
        • Просмотров
      • API
        • Контроллеры
          • HomeController.cs

класс Startup

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
     { 
      loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
      loggerFactory.AddDebug(); 

      if (env.IsDevelopment()) 
      { 
       app.UseDeveloperExceptionPage(); 
       app.UseBrowserLink(); 
      } 
      else 
      { 
       app.UseExceptionHandler("/Home/Error"); 
      } 

      app.UseStaticFiles(); 

      app.UseMvc(routes => 
      { 
       routes.MapRoute(name: "areaRoute", 
        template: "{area:exists}/{controller=Home}/{action=Index}"); 

       routes.MapRoute(
        name: "default", 
        template: "{controller=Home}/{action=Index}/{id?}"); 
      }); 
     } 

я уже отмечал [Area ("Администратор/FrontEnd")] для HomeController, но он не работает. Он возвращает следующую ошибку:

Необработанное исключение возникло во время обработки запроса.

InvalidOperationException: Вид 'About' не найден. Были обысканы следующие местоположения: /Areout/Admin/Views/Home/About.cshtml

Как это сделать?

Проект

enter image description here

enter image description here

+0

Пожалуйста, проверьте http://stackoverflow.com/questions/36535511/how-to-use-area-for-asp-net-core? Rq = 1 –

+0

и, конечно, https://docs.asp.net/ru/latest/mvc/controllers/areas.html –

+0

Ваш скриншот пропустили «FrontEnd» -> «ForntEnd» .. это может быть так, что –

ответ

1

Вы можете использовать AreaViewLocationFormats на RazorViewEngineOptions, чтобы указать, что все пути, которые вы хотите MVC искать мнения.

services.Configure<RazorViewEngineOptions>(o => 
{ 
    o.AreaViewLocationFormats.Insert(0, "/Areas/{2}/FrontEnd/Views/Shared/{0}.cshtml"); 
    o.AreaViewLocationFormats.Insert(0, "/Areas/{2}/FrontEnd/Views/{1}/{0}.cshtml"); 
}); 

Вы можете прочитать подробную документацию по какой AreaViewLocationFormats находится здесь: https://github.com/aspnet/Mvc/blob/1.0.0/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngineOptions.cs#L92

Также вы можете просто украсить свои контроллеры, чтобы быть просто [Area("Admin")]

+0

Это работает. спасибо – Eagle

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