Ошибка времени компиляции: визуализация частичного представления в частичном представлении - PullRequest
2 голосов
/ 01 июля 2011

Я пытаюсь отобразить частичную страницу внутри частичной страницы. Итак, у меня на странице макета есть вызов моего частичного CreateMenu, и здесь я передаю модель со страницы макета. Это работает отлично. Теперь внутри партиала CreateMenu я пытаюсь вызвать MenuItem с тем же синтаксисом, но затем происходит сбой. Visual studio показывает путь красным (я знаю на 100%, что он существует).

Как сделать рендеринг частичного изнутри частичного.

Вызов MenuPartial для рендера:

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

Model.Modules [i] состоит из объектов MvcModule.

MenuItem:

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

Это приводит к ошибке компиляции:

Сообщение об ошибке компилятора: CS0115: "ASP._Page_Models_Default_UserControls__MenuItem_cshtml.Execute ()": Es wurde keine passende Methode zum Überschreiben gefunden. Строка 46: публичное переопределение void Execute () {

Извините за текст на немецком языке. Я попытался заставить его выводить английский вместо этого, но VS 2010 отказывается изменить настройки = /

1 Ответ

2 голосов
/ 01 июля 2011

Не думаю, что это частичная вложенная проблема.Вы должны быть в состоянии вложить части без каких-либо проблем.Похоже, что часть, которую вы пытаетесь визуализировать, находится в каталоге ~/Models/Default/UserControls.Это не то место, где механизм просмотра по умолчанию ищет представления.Попробуйте скопировать файл web.config из вашего каталога Views в каталог Models.

Если бы это был я, я бы постарался избежать сохранения представлений вне каталога Views, если это вообще возможно, чтобы избежать странноготакие вопросы.

...