从umbraco下拉列表中获取prevalue id

时间:2014-05-16 14:47:42

标签: ajax asp.net-mvc umbraco umbraco7

我目前正在尝试在特定网页上实施AJAX结果过滤。

我创建了下拉列表(在客户端),以便他们将umbraco prevalue 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"

是否可以从dropdownlist属性中获取所选值id?或者是字符串匹配我唯一的比较值的选项?

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

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

Source

1 个答案:

答案 0 :(得分:0)

也许这样的事情。

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