0

我目前正在尝试AJAX在某个页面上实现结果过滤。

我创建了下拉列表(在客户端),以便它们将umbracoprevalue id 作为其值。

然后我会将这个 id 发送到服务器,而不是文本值。然后我遍历我的内容以查找具有相同 ID 的项目。

然而,问题是我无法弄清楚如何从 property 获取值 id。一切要么返回文本值,要么只返回 0 值。

这是在ApiController.

这些是我尝试过的所有选项:

IPublishedContent root = Umbraco.TypedContentAtRoot().First();
var downloads = root.Children.Where(q => q.Name == "Downloads").SingleOrDefault();

foreach (var item in downloads.Children)
{
  var test = item.GetPropertyValue<int>("classification");
  var testing = item.GetProperty("classification");
  var testVal = testing.DataValue;
  var testValToo = testing.GetValue<int>();
  var testThree = testing.Value;
}

这些是按顺序排列的结果:

 - 0 
 - IPublishedProperty 
 - "textValue" 
 - 0 
 - "textValue"

是否可以从下拉列表属性中获取选定的值 id?还是字符串匹配我比较值的唯一选择?

编辑:没关系,找到了解决方案。在这里发布答案,以防其他人需要它。

我正在使用数据类型下拉列表。我应该一直在使用下拉列表:发布键。dropdownlist 只返回一个值。然而,dropdownlist:publishing keys 返回的是 prevalue id,而不是文本值。

资源

4

1 回答 1

0

可能是这样的。

library.GetPreValueAsString(node.GetProperty<int>("sectionType")).ToLower()
于 2014-05-16T18:37:06.367 回答