2011-07-01 6 views
2

부분 페이지 내에 부분 페이지를 렌더링하려고합니다. 그래서 내 레이아웃 페이지에서 CreateMenu의 부분 호출을 호출하고 여기서 레이아웃 페이지에서 모델을 전달합니다. 이것은 완벽하게 작동합니다. 이제 CreateMenu 부분 내에서 동일한 구문으로 MenuItem을 호출하려고했지만 실패합니다. 비주얼 스튜디오는 빨간색으로 경로를 보여줍니다 (100 %를 알고 있음).컴파일 타임 오류 : 부분보기 내에서 부분보기 렌더링

어떻게 내부에서 부분을 렌더링 할 수 있습니까? 렌더링에

MenuPartial의 전화 :

@Html.Partial("~/Models/Default/UserControls/_MenuItem.cshtml", Model.Modules[i])  

Model.Modules [내가] MvcModule 객체로 구성되어 있습니다.

MenuItem의

@model Models.Default.Classes.MvcModule 
<li class="@{if (Model.CanExpand) {<text>fullwidth</text>} else {<text>nodrop</text>}} first_fullwidth"> 
... 

이것은 컴파일 오류가 발생합니다 : 독일의 텍스트

Compiler Error Message: CS0115: "ASP._Page_Models_Default_UserControls__MenuItem_cshtml.Execute()": Es wurde keine passende Methode zum Überschreiben gefunden. Line 46: public override void Execute() {

죄송합니다. 대신 영어로 출력하려고했지만 VS 2010에서 설정을 변경하지 않습니다./

+0

해당 독일어를 영어로 번역하고 오류를 나타내는 Execute 메서드의 코드를 제공 할 가능성이 있습니까? – razlebe

+0

해당 코드를 생성하는 MVC 프레임 워크입니다. 부분 뷰를 실행하려고하면 실패합니다. 오류 메시지 : 적절한 메서드를 재정의 할 수 없습니다. – Patrick

+0

Visual Studio 2010에서 "부분보기를 해결할 수 없습니다 : '경로' '가 표시됩니다. 나는 그것이 있다는 것을 압니다. – Patrick

답변

2

중첩 된 부분 문제는 아닙니다. 문제없이 부분을 중첩 할 수 있어야합니다. 렌더링하려는 부분이 ~/Models/Default/UserControls 디렉토리에있는 것 같습니다. 이것은 기본보기 엔진이보기를 찾는 장소가 아닙니다. Views 디렉토리의 web.config 파일을 Models 디렉토리로 복사 해보십시오.

만약 내가 이런 식으로 이상한 문제를 피하려면 가능한 한 Views 디렉토리 외부에 뷰를 저장하지 않도록 노력해야합니다.

+0

너무 쉽습니다. MainMenu는 몇 가지 이유로 거기에서 만들어졌으며 항상 효과가있었습니다. 뷰 폴더로 옮기고 * poff * 작동했습니다. 감사! – Patrick