2010-08-22 2 views
12

ASP.NET MVC 2 응용 프로그램을 여러 영역으로 나누었습니다. 그 중 하나는 기본 카탈로그의 기본 영역이고 다른 하나는 영역 카탈로그의 Account 영역입니다. 이제 문제는이 두 영역의 컨트롤러에서 동일한 뷰를 사용해야한다는 것입니다.다른 영역에서보기 반환

같은 지역에있는 경우 return View("ViewName") 일뿐입니다. 컨트롤러의 내 기본 영역에서 내 Account 영역의보기를 반환하려면 어떻게해야합니까? 어떤 아이디어?

+0

단지이 메모를'~/Views/Shared' 폴더에두고 모든 컨트롤러/영역에서'return View ("ViewName")을 호출하면됩니다. – Omar

답변

27

당신은 뷰의 상대적 위치를 지정할 수 있습니다 :

return View("~/Views/YourArea/YourController/YourView.aspx"); 

을하지만 뷰가 여러 영역에서 공유 할 때 나는이 목적을 더 제공하는 ~/Views/Shared 폴더를 사용하는 것이 좋습니다.

+0

감사합니다. Darin - 나는 이것을 시도 할 것이다. –

4

이것은 이전 질문이지만 여전히 MVC의 관련 문제로 생각합니다. 여기서는 서버 경로를 쉽게 변경하고 모든 종속 작업을 자동으로 업데이트 할 수 있도록 DRY 방식으로 해결하는 방법을 보여줍니다.

public class FooController : Controller 
{ 

    private ActionResult FooView(string name, string extension = "cshtml") { 
     return View("~/Areas/Bar/Views/Foo/" + name + "." + extension); } 
    } 


    public ActionResult SomeAction(){ 

     return FooView("AreaSpecificViewName"); 

    } 

    public ActionResult SomeOtherAction(){ 

     return FooView("AnotherAreaSpecificViewName", "aspx"); 

    } 

} 

기본적으로 면도기 (.cshtml)보기 파일이기 때문에 정상입니다. SomeOtherAction()과 같이 두 번째 매개 변수를 제공하여 파일을 명시 적으로 설정할 수 있습니다.

특히 개발 중 영역의 경로가 변경 될 수있는 경우 간단하지만 편리합니다.

누군가를 돕는 희망.

관련 문제