【问题标题】:Calling Partial Views in Razor在 Razor 中调用局部视图
【发布时间】:2017-07-13 00:42:20
【问题描述】:

我有一个问题似乎让我发疯了。如何将另一个主控的部分视图拉到我的主页(与视图等无关)并位于另一个文件夹中?我只是想参考一下:

@Html.ThemedPartial(Model, "Latest")

(来自 Umbraco 的 Articulate 博客)。但是,我不确定如何执行此操作,因为我不知道要包含哪些 using 指令等?

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

我收到以下错误:

编译器错误消息:CS1061:“System.Web.Mvc.HtmlHelper>”不包含“ThemedPartial”的定义,并且没有扩展方法“ThemedPartial”接受“System.Web.Mvc.HtmlHelper>”类型的第一个参数' 可以找到(您是否缺少 using 指令或程序集引用?)

它在@Html.ThemedPartial(Model, "Latest")引用源错误

我还尝试了@Html.Partial("~/App_Plugins/Articulate/Themes/MyTheme/Views/Partials/Latest.cshtml", Model) 而不是@Html.ThemedPartial(Model, "Latest"),但没有成功。我得到以下信息:

Umbraco.Web.Mvc.ModelBindingException:无法将源内容类型 Umbraco.Web.PublishedContentModels.Index 绑定到模型类型 Articulate.Models.IMasterModel。

【问题讨论】:

  • “另一个大师”是什么意思?
  • 抱歉,我是 Razor 的新手。我有一个博客,由具有许多部分视图的大师操作。我正在尝试在我网站的 cshtml 主页中包含其中一个部分视图 (@Html.ThemedPartial(Model, "Latest"))。因此,我试图将部分视图调用到一个完全不同的 .cshtml 文件中。
  • 根据定义,部分位于完全不同的 cshtml 文件中。我不明白你面临的问题是什么。如果你现在尝试运行它会发生什么?你有错误吗?
  • 你为什么使用ThemedPartial?你从哪里得到的?
  • 它来自 umbraco 中名为 Articulate 的博客引擎。我一直在使用 ThemedPartial 来调用 Articulate Model 中的局部视图。但现在我试图在一个新的内容模型中调用它...我对 MVC 不太熟悉...抱歉没有经验。

标签: c# asp.net visual-studio razor umbraco


【解决方案1】:

我想通了:

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

【讨论】:

    【解决方案2】:

    当您查看 Articulate sourcecode 时,您会发现 ThemedPartial 只是一个扩展方法,它执行以下操作:

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

    GetThemePartialViewPath 返回视图的相对路径

    如果您正确设置了Latest.cshtml 的@model 声明,以下应该可以工作

    @Html.Partial("~/App_Plugins/Articulate/Themes/MyTheme/Views/Partials/Latest.cshtml", Model)

    【讨论】:

    • 正确设置模型声明是什么意思...声明为: (at)using Articulate (at)using Articulate.Models (at)inherits UmbracoViewPage
    • inherits UmbracoViewPage<Articulate.Models.IMasterModel> 表示局部视图需要一个 IMasterModel 类型的模型。您是否传递了实现此接口的模型?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2011-12-15
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多