2012-08-13 4 views
1

우리는 인증 된 사용자가 속한 역할에 따라 사이트의 관리자가 2 개의 별도 영역을 사용하여 프로젝트를 만들었습니다. 두 영역간에 겹치는 일부 기능이 있지만 단일 영역으로 결합 할만큼 충분하지는 않습니다. 그래서 우리가 UI를 위해 한 것은 부분 뷰를 물리적으로 배치 할 위치를 결정하는 데 어려움을 겪고 있지만 두 영역 내의 유사한 뷰에서 포함 된 부분 뷰를 만드는 것입니다.ASP.NET MVC - 부분 뷰 디자인 패턴?

~/Views/Shared에 루트 레벨보기가이 특정 부분보기를 사용하지 않으므로이 표시를 ~/Views/Shared에 두는 것은 의미가 없습니다. 이 부분보기를 직접 "소유"하지 않으므로 ~/Areas/Area/Views/Shared에 파일을 두는 것도 의미가 없습니다.

이 시나리오에서 가장 좋은 위치는 무엇이라고 생각하십니까?

+0

공유 폴더에 부분을 넣지 않으면 내장 된 HTML 도우미를 사용하여 전화를 걸 수 없다고 생각합니다. –

+0

모든 뷰에서 부분 뷰에 액세스 할 수 있습니다. 그것은 현재, 다음 공유 폴더 (들)을 기본적으로 찾습니다,하지만 당신은 또한 Html.Partial ("~/Area/[Area] /Views/Shared/MyPartial.cshtml"모델)을 통해 위치를 지정할 수 – Keith

+0

Ahh , 나는 그것을 몰랐다. 감사 –

답변

2

나는 그 부분 뷰는 정말 내가 가정으로, 별도의 컨트롤러 두 지역 사이을 공유 있지만 ~/조회/공유가, 여기 당신을위한 최고의 솔루션이 아니다라고 생각합니다.

그러나, 당신은 당신이 원하는 목적지까지 넣어 될 수있는 부분 뷰를 포함하는

Html.Partial(pathToView, model) 

기능을 사용할 수 있습니다. 당신이 언급 한 심지어 예 :

Html.Partial("~/Areas/[Area]/Views/Shared/PartialViewFile.cshtml", model) 

또는 : 모든 지역이 의견을 공유하는

Html.Partial("~/Areas/Shared/Views/PartialViewFile.cshtml", model) 

이 솔루션은, 나에게 더 관련성 것, 그리고 그들은 특정 영역에 속하지 않는다.