15

Admin 영역에 있고 속성 라우팅을 사용하여 내 경로를 매핑하면 실제 영역보기 폴더가 아닌 전역보기 폴더가 보이기 때문에보기를 찾을 수 없습니다.영역 내에서 mvc5 속성 라우팅보기를 찾을 수 없습니다.

보기에 전체 경로를 전달한 경우에만 표시하고 그렇지 않으면 오류가 발생합니다.

오류 내가 사용하지 라우팅 속성 및 좋은 오래된 경로로 다시 전환 할 경우이 작동합니다

The view 'Authorize' or its master was not found or no view engine supports the searched locations. The following locations were searched: 
~/Views/Home/Authorize.aspx 
~/Views/Home/Authorize.ascx 
~/Views/Shared/Authorize.aspx 
~/Views/Shared/Authorize.ascx 
~/Views/Home/Authorize.cshtml 
~/Views/Home/Authorize.vbhtml 
~/Views/Shared/Authorize.cshtml 
~/Views/Shared/Authorize.vbhtml 

코드

[RoutePrefix("admin")] 
public class HomeController : Controller 
{ 

    [Route] 
    public ActionResult Index() 
    { 
     return View("Authorize"); // Error 
     return View("~/Areas/Admin/Views/Home/Authorize.cshtml"); // Working 
    } 
} 

참고. 이 문제를 해결하는 방법이나 의도 한대로 작동하고 내 모든 영역에서 완전한 경로를 적용해야합니까?

+0

일부 도움이 될 수도 있습니다 http://stackoverflow.com/questions/22436573/default-area-cant-find-view –

답변

24

당신은 당신의 컨트롤러에 [RouteArea("")] 속성을 추가해야합니다

[RouteArea("Admin")] 
public class HomeController : Controller 

당신은 문서 here를 찾을 수 있습니다.

+1

이상하게도이 작업은 'HTTP 오류 404.0 - 찾을 수 없음'을 색인 작업에 제공합니다. – sed

+2

그 원인을 찾아 냈습니다. 'RouteArea'를 사용할 때'RoutePrefix'를 제거해야합니다. – sed

+0

알았어, 그 대답을 반영하도록 답변을 업데이트했습니다. – James