0

MVC Extension with Autofac을 사용하고 있으며 내 영역에 문제가 있습니다. 내가 뭘 잘못하고 있는지 잘 모르겠다. 내 영역이 잘 표시이 코드MVC 확장자로 경로 및 영역을 등록 할 때 MVC 영역이 표시되지 않습니다.

public class MvcApplication : AutofacMvcApplication 
{ 
    public MvcApplication() 
    { 
      Bootstrapper.BootstrapperTasks 
       .Include<RegisterControllers>(); 
    } 
} 

protected override void OnStart() 
{ 
    AreaRegistration.RegisterAllAreas(); 

    RegisterGlobalFilters(GlobalFilters.Filters); 
    RegisterRoutes(RouteTable.Routes); 

    base.OnStart(); 
} 

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new HandleErrorAttribute()); 
} 

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
    ); 
} 

:

처음에 나는 내 global.asax.cs에 다음했다. 내 색인보기가 http://localhost:19857/Administration에 표시됩니다.

MVC 확장 프로그램에서 내 경로와 영역을 등록하려면 http://localhost:19857/Administration에 아무 것도 표시되지 않고 404 오류 만 표시됩니다.

public class MvcApplication : AutofacMvcApplication 
{ 
    public MvcApplication() 
    { 
      Bootstrapper.BootstrapperTasks 
       .Include<RegisterAreas>() 
       .Include<RegisterControllers>() 
       .Include<RegisterRoutesBootstrapperTask>(); 
    } 

    protected override void OnStart() 
    { 
      RegisterGlobalFilters(GlobalFilters.Filters); 

      base.OnStart(); 
    } 

    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
      filters.Add(new HandleErrorAttribute()); 
    } 
} 

RegisterRoutesBootstrapperTask class :

public class RegisterRoutesBootstrapperTask : RegisterRoutesBase 
{ 
    public RegisterRoutesBootstrapperTask(RouteCollection routes) 
      : base(routes) 
    { 
    } 

    protected override void Register() 
    { 
      Routes.Clear(); 

      Routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      Routes.MapRoute(
       "Default", 
       "{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 
    } 
} 

왜 내 영역이 표시되지 않습니다

은 내 경로와 영역을 등록 global.asax.cs 업데이트됩니다?

UPDATE

내가 대시 보드 컨트롤러 인덱스보기에 http://localhost:19857/Administration 다음 기본값으로 이동합니다. 내 지역의 등록 코드는 다음과 같습니다.

public override string AreaName 
{ 
    get 
    { 
      return "Administration"; 
    } 
} 

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.MapRoute(
      "Administration_default", 
      "Administration/{controller}/{action}/{id}", 
      new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional } 
    ); 
} 
+0

당신이 방문하는 경우 'HTTP : // 로컬 호스트 : 19857/관리/홈/Index' 내 global.asax.cs 업데이트됩니다 여기

public class RegisterRoutesBootstrapperTask : RegisterRoutesBase { public RegisterRoutesBootstrapperTask(RouteCollection routes) : base(routes) { } protected override void Register() { Routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); Routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } 

: 저는 여기에 위의 코드에 한 나의 변화입니다 (또는 기본 영역 컨트롤러의 작업)? – jgauffin

+0

내 업데이트를 참조하십시오. 위 URL은 관리 구조에있는 대시 보드 컨트롤러의 색인보기를 사용합니다. –

+0

그래,하지만 'http : // localhost : 19857/Administration/dashboard/index /'를 열거 나 404를 얻을 수 있습니까? – jgauffin

답변

1

나는이 문제를 해결 한 것으로 보입니다. 문제는 Routes.Clear();으로 해결했습니다. 이제 모든 것이 잘 작동합니다.

public class MvcApplication : AutofacMvcApplication 
{ 
    public MvcApplication() 
    { 
      Bootstrapper.BootstrapperTasks 
       .Include<RegisterAreas>() 
       .Include<RegisterControllers>() 
       .Include<RegisterRoutesBootstrapperTask>() 
       .Include<AutoMapperBootstrapperTask>(); 
    } 
}