模板无法接收 IList 模型



我正在编写一个 Umbraco 应用程序,我需要将一些模型发送到从 MasterPage 继承的页面,如下所示:

@using ContentModels = App.Models.BlogPostViewModel
@inheritsUmbraco.Web.Mvc.UmbracoTemplatePage<IList<App.Models.BlogPostViewModel>>
@{
    Layout = "Master.cshtml";
}

但是我收到错误:

类型"System.Collections.Generic.IList"必须可转换为"Umbraco.Core.Models.IPublishedContent"

这是控制器:

public ActionResult GetBlogsByMonthId(int monthId)
{
    var rootNode = Umbraco.TypedContentAtRoot().First();
    var blogs = BlogService.GetBlogsByMonthId(rootNode, monthId);
    return View("~/Views/BlogArchivePage.cshtml", blogs);
}

怎么了?我应该制作一个新的页面吗?

"

IList"必须派生自IPublishedContent才能将其与UmbracoTemplatePage一起使用。相反,您可以使用UmbracoViewPage,它应该可以工作 - 请参阅下面的代码:)

 @using ContentModels = App.Models.BlogPostViewModel
 @inheritsUmbraco.Web.Mvc.UmbracoViewPage<IList<App.Models.BlogPostViewModel>>
 @{
     Layout = "Master.cshtml";
  }

你的 BlogService.GetBlogsByMonthId(rootNode, monthId) 是否返回 IPublishedContent List? 我正在做类似的事情:-

mainBlogPageContent.Children.OrderByDescending(x => x.CreateDate).Take(numberOfArticles).ToList()

然后将其传递到我的部分视图中,作为:-

@inherits Umbraco.Web.Mvc.UmbracoViewPage<IList<IPublishedContent>>

我忘了添加"ToList" - 添加这个解决了我的问题。

相关内容

  • 没有找到相关文章

最新更新