繁体   English   中英

从当前页面获取 DataType 的属性列表

[英]Getting list of properties of a DataType from current page

晚上好!

我目前正在我的应用程序的后端工作,我需要获取某个数据类型的所有属性的列表,但只有当前页面中的属性。

listFiltersCms = _umbraco.ContentAtRoot().SelectMany(c => c.Descendants<DataFilters>()).ToList();

上面的这一行收集了所有页面的所有过滤器,但我想要来自特定页面的过滤器(可以是 currentPage)。

我尝试过这样的事情:

var listFiltersCms = _umbraco.AssignedContentItem.SelectMany(c => c.Descendants<DataFilter>()).ToList();

但没有任何运气:(有什么想法吗?

不完全确定您所说的“我的应用程序的后端”是什么意思——您是在 Umbraco 内部还是在公共网站上?

我问是因为有一种相当简单的方法可以获取有关特定数据类型的所有信息,但它并不是真的要在面向公众的网站上使用。 可以,但它可能会对系统造成负担,因为我认为它直接查询数据库,这并不理想。

无论如何,您可能想看看 DataTypeService: https://our.umbraco.com/Documentation/Reference/Management/Services/DataTypeService/Index-v8

在这里你可以看到你有哪些使用它的选项(不是很解释,但我发现了一些你可能会研究的方法): https://our.umbraco.com/apidocs/v8/csharp/api/Umbraco。 Core.Services.IDataTypeService.html

如果您决定在会有大量请求的情况下使用该服务,则可以考虑缓存 output 以备用数据库。

我解决此问题的方法是在正确的 model 中获取页面。 就我而言,我所要做的就是: (_umbraco.AssignedContentItem as PageModel).FilterCustomMeasures;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM