2017-02-22 2 views
0

Ich habe eine Frage, die mich verrückt zu machen scheint. Wie kann ich eine Teilansicht von einem anderen Master auf meine Homepage ziehen (die nicht mit der Ansicht usw. zusammenhängt) und in einem anderen Ordner ist? Ich möchte nur verweisen:Teilweise Aufrufe in Razor aufrufen

@Html.ThemedPartial(Model, "Latest")

(die aus dem Articulate Blog in Umbraco ist). Ich bin mir jedoch nicht sicher, wie ich das machen soll, weil ich nicht weiß, welche Anweisungen ich verwenden soll usw.?

Gibt es eine einfache Möglichkeit, dies zu tun?

Ich erhalte den folgenden Fehler:

Compiler Error Message: CS1061: 'System.Web.Mvc.HtmlHelper>' does not contain a definition for 'ThemedPartial' and no extension method 'ThemedPartial' accepting a first argument of type 'System.Web.Mvc.HtmlHelper>' could be found (are you missing a using directive or an assembly reference?)

Es ist die Quelle Fehler bei @Html.ThemedPartial(Model, "Latest")

zitierte ich habe auch versucht, @Html.Partial("~/App_Plugins/Articulate/Themes/MyTheme/Views/Partials/Latest.cshtml", Model) statt @Html.ThemedPartial(Model, "Latest") ohne Glück. Ich erhalte die folgende:

Umbraco.Web.Mvc.ModelBindingException: Cannot bind source content type Umbraco.Web.PublishedContentModels.Index to model type Articulate.Models.IMasterModel.

+0

Was meinst du mit "einem anderen Master"? – mason

+0

Entschuldigung, ich bin neu in Razor. Ich habe einen Blog, der von einem Master mit vielen Teilansichten handelt. Ich versuche, eine der Teilansichten (@ Html.ThemedPartial (Model, "Latest")) in die Homepage meiner Website cshtml aufzunehmen. Daher versuche ich eine Teilansicht in eine komplett andere .cshtml-Datei zu rufen. – Bobi

+0

Partials per Definition sind in einer völlig anderen Cshtml-Datei. Ich sehe nicht, was das Problem ist, dem du gegenüberstehst. Was passiert, wenn Sie versuchen, es jetzt auszuführen? Erhalten Sie einen Fehler? – mason

Antwort

0

ich es herausgefunden:

@Html.Partial("~/Views/Partials/Recent.cshtml", Model) 
1

Wenn Sie die Articulate sourcecode sehen Sie werden sehen, ThemedPartial ist nur eine Erweiterung Methode, die die folgenden:

var path = PathHelper.GetThemePartialViewPath(model, partialName); 
return html.Partial(path, viewModel, viewData); 

Wo GetThemePartialViewPath einen relativen Pfad zu der Ansicht zurück

folgendes sollte funktionieren, wenn Sie die @model Erklärung Latest.cshtml richtig

gesetzt

+0

Was meinen Sie das Modell Erklärung richtig eingestellt ... wird erklärt, wie: (at) mit Articulate (at) mit Articulate.Models (at) UmbracoViewPage erbt Bobi

+0

'erbt UmbracoViewPage 'Bedeutet, dass die Teilansicht ein Modell vom Typ IMasterModel erwartet. Übergeben Sie ein Modell, das diese Schnittstelle implementiert? – Mark