如何使用ContentService获取Umbraco中的CheckBoxList值

时间:2017-04-06 14:37:17

标签: checkbox umbraco umbraco7 checkboxlist umbraco6

任何人都知道如何使用ContentService从Umbraco获取所选CheckBoxList值的列表?

我使用contentService.GetValue(" currency")

我收到数字和逗号的字符串,如" 154,155,156,157"

如何获得实际值?

有人知道如何使用DataTypeService吗?

3 个答案:

答案 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将忽略空格。