任何人都知道如何使用ContentService从Umbraco获取所选CheckBoxList值的列表?
我使用contentService.GetValue(" currency")
我收到数字和逗号的字符串,如" 154,155,156,157"
如何获得实际值?
有人知道如何使用DataTypeService吗?
答案 0 :(得分:1)
如上所述,您可以使用Umbraco helpers方法检索PreValue id的字符串值。
Umbraco.GetPreValueAsString([PreValueId])
您可以在此处找到更多相关信息:https://our.umbraco.org/documentation/reference/querying/umbracohelper/#getprevalueasstring-int-prevalueid
它通过场景后面的 DataTypeService 直接调用数据库。值得重新考虑它并在另一种类型的属性/数据类型上关闭它以避免在前端层调用数据库并只从IPublishedContent缓存模型中检索数据。
另请阅读Umbraco中常见的陷阱和反模式:https://our.umbraco.org/documentation/Reference/Common-Pitfalls/
答案 1 :(得分:0)
这些都是预先估价。
从那个给定的字符串中,你必须通过调用umbraco库umbraco.library.GetPreValueAsString(123);
之一来分割它们并获得真正的价值
例如。
foreach(var item in contentService.GetValue("currencies").Split(',')) {
var realValue = umbraco.library.GetPreValueAsString(int.Parse(item);
}
答案 2 :(得分:0)
你有2个空值,因为prevalues有时会有空值,例如" 121,56,,15,145和#34;。
然后您需要像这样修改分割代码
foreach (var item in value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
}
StringSplitOptions.RemoveEmptyEntries
将忽略空格。