从umbraco下拉列表中获取预取值id



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

我创建了下拉菜单(在客户端),使它们具有umbraco预值id作为它们的值。

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

问题是,然而,我不能弄清楚如何从属性获得值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 ?还是字符串匹配是我比较值的唯一选择?

编辑:没关系,我找到解决办法了。把答案贴在这里,以防有人需要。

我正在使用数据类型下拉列表。我应该使用下拉列表:发布密钥。下拉列表只返回一个值。下拉列表:发布键,但是,返回预值id,而不是文本值。

可能是这样的。

library.GetPreValueAsString(node.GetProperty<int>("sectionType")).ToLower()

最新更新