2014-05-17 2 views
2

새 프로젝트가 새 영역에 대한보기를 찾을 수 없습니다.ASP.Net MVC에서 영역보기를 찾을 수 없습니다. MVC 5

상위 뷰 폴더에서 찾으려고합니다.

제안 된 해결책은 .DataTokens.Add("area", "AREANAME")RegisterArea 방법에 넣는 것입니다. 이와 그러나

public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "Test_default", 
       "Test/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ).DataTokens.Add("area", "Test"); 
     } 

는, 나는 "이미 추가 된 동일한 키와 항목입니다."는납니다 오류입니다.

업데이트 1 : 컨트롤러에서 아무 것도하지 않습니다.

public ActionResult Index() 
     { 
      return View(); 
     } 

업데이트 2 : 저는 Unity 컨테이너에 구성 요소를 등록하고 있다고 덧붙이고 싶습니다. 하지만 컨트롤러를 등록 할 필요가 없다는 점을 명시 적으로 언급했기 때문에 이것이 문제를 일으키는 것으로 생각하지 않습니다.

+0

컨트롤러의 행동을 보여주십시오. –

+0

컨트롤러에 특별한 것이 없음을 보여주기 위해 위의 내용을 업데이트했습니다. –

답변

4

그것은 가장 가능성을 잡으려고합니다 아무것도 위의 경로 선언을 이동 시도하고 대신이 공간에서보고되어야한다 (또는 이제까지 당신이 가진 네임 스페이스 무엇

YourNamespace.YourApplication.Areas.Test.Controllers 

추가 경로 선언에 다음) 정의

1

Register Area 방법은 이미 귀하의 지역에 이라는 것을 알고 있습니다. 함수 DataTokens.Add("area", "Test")을 사용하면 경로가 두 번째로 선언됩니다. 그래서이 오류가 발생합니다.

보기의 초기 문제는 라우팅 설정과 관련이 없습니다. 컨트롤러에서 뷰를 렌더링 할 때 사용자 정의 코드가 있습니까?

+0

아니요, 맞춤 코드가 없습니다. –

1

경로 선언이 "모두 포착"경로 선언 (일반적으로 부모보기로 지적한 것)보다 높지 않으면 매번 부모가 기본값이됩니다. 보기 네임 스페이스

YourNamespace.YourApplication.Controllers 

에서 검색되고 있기 때문에 부모는

+0

영역에 대한 경로 선언은 global.asax.cs에서 RouteConfig 전에 호출되는 AreaRegistration에서 호출됩니다. –

관련 문제