2010-04-24 6 views
0

"Admin"영역을 만들었습니다. 이 영역에는 컨트롤러 (페이지)와 뷰 (목록)도 만들었습니다.ASP.NET MVC 2 영역, 이상한 라우팅 동작

내 앱을 실행하고 "/ Admin/Pages/List"URL을 입력하면 리소스를 찾을 수 없습니다. 오류가 발생합니다. 내가/페이지/목록을 입력하면 응용 프로그램이 잘못된 디렉토리

에서 검색되기 때문에

가, 작업 방법, 공격되지만 뷰가 발견되지 않는

~/조회/페이지/List.aspx ~/조회/페이지/List.ascx ~/Views/Shared/List.aspx ~/Views/Shared/List.ascx

보기는/Admin/Pages/List에 있습니다.

는 관리 영역에 대한 나의 경로의 conf는 :

public class AdminAreaRegistration : AreaRegistration 
{ 
    public override string AreaName 
    { 
     get 
     { 
      return "Admin"; 
     } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Admin_default", 
      "Admin/{controller}/{action}/{id}", 
      new { controller= "Pages",action = "Index", id = "" } 
     ); 
    } 
} 

답변

2

당신은 기존의 routes.MapRoute 호출하기 전에 실행해야 Global.asax.cs

이에 AreaRegistration.RegisterAllAreas();을 추가 한

편집 :

내 관리 영역을 살펴본 결과 경로는 다음과 같습니다.

context.MapRoute(
       "Admin_Default", 
       "Admin/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 
+0

예, 있습니다.하지만 어쨌든 작동하지 않습니다. 나는 라우팅 권리를 압박하고 있는가? 영역에 대한 URL은 www.domain.com/Area/Controller/Action/Parameter와 같아야합니다. – user137348

+0

@ user137348 : 그게 전부로 보입니다 ... –

+0

신경 쓰지 마세요. 나는 이상한 행동을 일으키는 것을 발견했다. 이전에는 컨트롤러를 드래그 앤 드롭 만 사용하여 루트에서 해당 영역으로 복사했습니다. 변경되지 않은 네임 스페이스로 인해 문제가 발생합니다. 내 잘못이야. 어쨌든 시간 내 주셔서 감사합니다 .. – user137348