Umbraco 8:获取 WebAPI 中特定类型的所有内容 class
Umbraco 8: Get all content of specific type in WebAPI class
Q) 我如何访问我的网站内容,例如我的 WebAPI 中的书籍 collection class?
在 Umbraco 8 网站项目中,我在我的剃刀视图中使用以下内容来获取内容,效果很好,然后我可以迭代 collection 并构建我的页面,一切都很好。
@inherits Umbraco.Web.Mvc.UmbracoViewPage
@using ContentModels = Umbraco.Web.PublishedModels;
@using System.Text.RegularExpressions;
@{
var books = Model.Root().DescendantsOfType("Book")
.Cast<Book>().Where(x => x.ShowInWebsite);
}
//...
但是,这不会在我的 WebAPI 中编译 class - 我不知道如何修复所需的引用。
我得到的错误:
The name 'Model' does not exist in the current context
我尝试过的其他事情:
var books = Umbraco.ContentAtRoot().DescendantsOrSelf().OfTypes("Book");
// 给出错误:
IEnumerable<IPublishedContent>' does not contain a definition for 'DescendantsOrSelf' and the best extension method overload 'PublishedContentExtensions.DescendantsOrSelf(IPublishedContent, string)' requires a receiver of type 'IPublishedContent
你的 WebApi class 没有模型,但只要它继承自 UmbracoApiController 你应该可以做到
Umbraco.ContentAtRoot()...
代替?
https://our.umbraco.com/documentation/reference/routing/webapi/
根据 https://our.umbraco.com/documentation/Reference/Querying/IPublishedContent/Collections/#oftypes 你应该可以做到
Umbraco.ContentAtRoot().DescendantsOrSelf().OfTypes("Book")
感谢@Jannik Anker 的评论
我通过以下方式获得了我的 collection:
var parent = Umbraco.ContentAtRoot().First().Children().FirstOrDefault(x => x.Name == "Booklist");
if (parent != null)
{
var books = parent.Children();
var test = "";
foreach (var book in books)
{
test += book.Id + ": " + book.Name + "\r\n";
}
return test;
}
Q) 我如何访问我的网站内容,例如我的 WebAPI 中的书籍 collection class?
在 Umbraco 8 网站项目中,我在我的剃刀视图中使用以下内容来获取内容,效果很好,然后我可以迭代 collection 并构建我的页面,一切都很好。
@inherits Umbraco.Web.Mvc.UmbracoViewPage
@using ContentModels = Umbraco.Web.PublishedModels;
@using System.Text.RegularExpressions;
@{
var books = Model.Root().DescendantsOfType("Book")
.Cast<Book>().Where(x => x.ShowInWebsite);
}
//...
但是,这不会在我的 WebAPI 中编译 class - 我不知道如何修复所需的引用。
我得到的错误:
The name 'Model' does not exist in the current context
我尝试过的其他事情:
var books = Umbraco.ContentAtRoot().DescendantsOrSelf().OfTypes("Book");
// 给出错误:
IEnumerable<IPublishedContent>' does not contain a definition for 'DescendantsOrSelf' and the best extension method overload 'PublishedContentExtensions.DescendantsOrSelf(IPublishedContent, string)' requires a receiver of type 'IPublishedContent
你的 WebApi class 没有模型,但只要它继承自 UmbracoApiController 你应该可以做到
Umbraco.ContentAtRoot()...
代替?
https://our.umbraco.com/documentation/reference/routing/webapi/
根据 https://our.umbraco.com/documentation/Reference/Querying/IPublishedContent/Collections/#oftypes 你应该可以做到
Umbraco.ContentAtRoot().DescendantsOrSelf().OfTypes("Book")
感谢@Jannik Anker 的评论
我通过以下方式获得了我的 collection:
var parent = Umbraco.ContentAtRoot().First().Children().FirstOrDefault(x => x.Name == "Booklist");
if (parent != null)
{
var books = parent.Children();
var test = "";
foreach (var book in books)
{
test += book.Id + ": " + book.Name + "\r\n";
}
return test;
}