2017-02-22 104 views
0

我有一个问题似乎让我发疯。我怎样才能从另一个主人拉到我的主页(这是不相关的视图等),并在另一个文件夹中的部分视图?我只想引用:在剃刀中调用部分视图

@Html.ThemedPartial(Model, "Latest")

(这是从一把umbraco会说话的博客)。但是,我不知道如何做到这一点,因为我不知道使用指令包含什么等等。

有没有简单的方法来做到这一点?

我收到以下错误:

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?)

它是在@Html.ThemedPartial(Model, "Latest")

引用源的错误,我也试过@Html.Partial("~/App_Plugins/Articulate/Themes/MyTheme/Views/Partials/Latest.cshtml", Model),而不是@Html.ThemedPartial(Model, "Latest")没有运气。我得到以下几点:

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

+0

你是什么意思 “另一个主”? – mason

+0

对不起,我是Razor新手。我有一个博客,从一个有很多部分观点的主人操作。我正在尝试在我的网站的cshtml主页中添加一个部分视图(@ Html.ThemedPartial(Model,“Latest”))。因此,我试图将部分视图调用为完全不同的.cshtml文件。 – Bobi

+0

部分按照定义在一个完全不同的cshtml文件中。我看不出你面临的问题是什么。如果你现在尝试运行它会发生什么?你有错误吗? – mason

回答

0

我想通了:

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

当你看Articulate sourcecode你会看到ThemedPartial只是一个扩展方法是执行以下操作:

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

凡GetThemePartialViewPath返回到视图中的相对路径

如果设置Latest.cshtml的@model声明正确

以下应该工作

+0

你的意思是正确设置模型声明......它被声明为:(at)using Articulate (at)using Articulate.Models (at)inherits UmbracoViewPage Bobi

+0

'inherits UmbracoViewPage '意味着部分视图需要一个IMasterModel类型的模型。你传递了一个实现这个接口的模型吗? – Mark