0

Web Forms와 MVC가 함께 살고있는 웹 사이트 프로젝트 (웹 응용 프로그램 아님)에서 작업하고 있습니다. 내 코드를 정리하기 위해 MVC 부분을 사용하여 영역을 설정하려고하는데이 상황에 처해 있습니다.RouteConfig에서 동일한 경로가 작동하지만 AreaRegistration이 적용되지 않습니다.

내 컨트롤러 설정 내 영역을했습니다 나는 다음과 같은 영역의 구성을 만들 : 내가 404 오류가 /Awesome/Sauce/로 이동하려고 내 사이트가 실제로 /Awesome/Sauce/Default.aspx 노선 저를하려고 할 때

Namespace Areas.Awesome 

    Public Class AwesomeAreaRegistration 
     Inherits AreaRegistration 

     Public Overrides ReadOnly Property AreaName As String 
      Get 
       Return "Awesome" 
      End Get 
     End Property 

     Public Overrides Sub RegisterArea(context As AreaRegistrationContext) 

      context.MapRoute(
       "Awesome_default", 
       "Awesome/{controller}/{action}/{id}", 
       New With {.controller = "Sauce", .action = "Index", .id = UrlParameter.Optional}, 
       New String() {"Areas.Awesome"} 
      ) 

     End Sub 

    End Class 

End Namespace 

을 . 내 RouteConfig에 경로를 이동할 때

그러나이 : ​​

Public Module RouteConfig 

    Public Sub RegisterRoutes(ByVal routes As RouteCollection) 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}") 
     routes.IgnoreRoute("{resource}.aspx/{*pathInfo}") 

     routes.MapRoute(
      "Awesome_default", 
      "Awesome/{controller}/{action}/{id}", 
      New With {.controller = "Sauce", .action = "Index", .id = UrlParameter.Optional}, 
      New String() {"Areas.Awesome"} 
     ) 
    End Sub 

End Module 

이 예상대로 /Awesome/Sauce/까지 제공합니다.

나는 파고를하고 동시에 두 경로를 모두 만들었지 만 다른 URI를 사용하면 두 경로가 같은 방식으로 정의된다는 것을 알았지 만 하나는 작동 중이었고 하나는 그렇지 않았습니다.

RouteConfig에 정의 된 것들이 무시되는 동안이 라우트가 무시되도록하는 영역 등록과 관련하여 누락 된 것이 있습니까?

답변

0

네임 스페이스가 영역에 적용되는 방식 일 수 있습니다.

는이 지역에 대한 완전한하지 않을 수 있습니다 this article

네임 스페이스를 참조하십시오.

public class ContactsAreaRegistration : AreaRegistration 
{ 
    public override string AreaName 
    { 
     get 
     { 
      return "Contacts"; 
     } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Contacts_default", 
      "Contacts/{controller}/{action}/{id}", 
      new { action = "Index", id = UrlParameter.Optional }, 
      namespaces: new[] { "MvcApplication1.Areas.Contacts.Controllers" } 
     ); 
    } 
}