我想从我的内容的LINQ查询中为每个记录插入Umbraco.Tags数据类型字段的值到我的razor输出中。我找不到合适的语法。我意识到它应该是一个字符串数组,但我尝试过的一切都失败了。
在单个内容的页面中,我可以使用以下内容字段名称为“Tags”。
var tags = CurrentPage.Tags;
LINQ查询很复杂,但我只是尝试将标记添加到输出中,以便我可以在页面内搜索客户端的特定记录。我删除了大部分查询以便于阅读。
var products = Model.Content.Site().Descendants<PenList>().First().Children("penProduct")
.Where(x => x.IsVisible())
.OfType<PenProduct>()
.Select(x => new ProductSearchResultItem() {
FilterText = x.ProductName + " " + x.ProductDescription.ToString() + " " + x.CompanyName.NullSafeToString() + " " + x.ProductType.ToString()
+ " " + (x.Parent.GetProperty("tags") != null ? x.Parent.GetProperty("tags").Value : string.Empty)})
我也尝试过获取x.Tags或x.GetProperty(“tags”)但没有成功。任何建议将不胜感激。
答案 0 :(得分:0)
penProduct文档类型或penList上的tags属性是?看起来你正在penList上寻找它。
但我认为它的行为与任何其他字符串一样。我通常不使用类型化模式,但是为了在我使用的视图中获取标记值列表:
var tags = Model.Content.GetPropertyValue<string>("tags", "").Split(',');
答案 1 :(得分:0)
由于该字段实际上是一个字符串数组,我必须使用以下代码将该属性作为字符串数组泛型,否则它将返回“System.String []”类型的文本。
x.GetPropertyValue<string[]>("tags")