Umbraco获取数据类型中的前置值

Umbraco获取数据类型中的前置值,umbraco,umbraco7,custom-data-type,Umbraco,Umbraco7,Custom Data Type,我使用的是Umbraco 7,我创建了一个数据类型,它使用属性类型下拉列表发布键。如何获取每个prevalue的id 提前谢谢。类似的东西 您需要参考: @using umbraco.cms.businesslogic.datatype 然后从以下位置获取数据类型Id: var dataTypeId = umbraco.cms.businesslogic.datatype.DataTypeDefinition .GetAll().First(d=> d.T

我使用的是Umbraco 7,我创建了一个数据类型,它使用属性类型下拉列表发布键。如何获取每个prevalue的id

提前谢谢。

类似的东西

您需要参考:

@using umbraco.cms.businesslogic.datatype
然后从以下位置获取数据类型Id:

var dataTypeId = umbraco.cms.businesslogic.datatype.DataTypeDefinition
                .GetAll().First(d=> d.Text == "DataTypeName").Id;

var preValues = PreValues.GetPreValues(dataTypeId).Values;
var enumerator = preValues.GetEnumerator();
while (enumerator.MoveNext())
{
    var preValueText = ((PreValue)enumerator.Current).Value;
    <option>@preValueText</option>
}
var dataTypeId=umbraco.cms.businesslogic.datatype.DataTypeDefinition
.GetAll().First(d=>d.Text==“DataTypeName”).Id;
var preValues=preValues.GetPreValues(dataTypeId).Values;
var枚举器=preValues.GetEnumerator();
while(枚举数.MoveNext())
{
var preValueText=((PreValue)枚举器.Current).Value;
@前值文本
}

您可以在Umbraco helper上使用DataTypeService

Umbraco.DataTypeService.GetPreValuesByDataTypeId()

@foreach(在ApplicationContext.Services.DataTypeService.GetPreValuesByDataTypeId(**-42**).ToList()中的变量类别重新估价)
{
  • }

    “-42”应在Umbraco backoffice中更改为您的数据类型ID。

    在Umbraco 7.x中,
    Umbraco.cms.businesslogic.datatype.DataTypeDefinition
    不推荐使用

    相反,我使用了以下方法。首先感谢@Kerpalito的回答,但我不想硬编码我的数据类型的ID,因为它可以在不同的环境中更改。该名称在所有环境中都是相同的

    public List<string> GetPrevalues()
    {
            List<string> toReturn = new List<string>();
    
            IDataTypeDefinition dataType = ApplicationContext.Current.Services.DataTypeService.GetDataTypeDefinitionByName("My Data Type Name");
    
            if (dataType == null)
            {
                return toReturn;
            }
    
            PreValueCollection preValues = ApplicationContext.Current.Services.DataTypeService.GetPreValuesCollectionByDataTypeId(dataType.Id);
    
            if (preValues == null)
            {
                return toReturn;
            }
    
            IDictionary<string, PreValue> tempDictionary = preValues.FormatAsDictionary();
    
            toReturn = tempDictionary.Select(p => p.Value.Value).ToList();
    
            return toReturn;
    }
    
    public List GetPrevalues()
    {
    List toReturn=新列表();
    IDataTypeDefinition dataType=ApplicationContext.Current.Services.DataTypeService.GetDataTypeDefinitionByName(“我的数据类型名称”);
    if(数据类型==null)
    {
    回归回归;
    }
    PreValueCollection preValues=ApplicationContext.Current.Services.DataTypeService.GetPreValuesCollectionByDataTypeId(dataType.Id);
    if(preValues==null)
    {
    回归回归;
    }
    IDictionary tempDictionary=preValues.FormatAsDictionary();
    toReturn=tempdirectionary.Select(p=>p.Value.Value.ToList();
    回归回归;
    }
    
    在Umbraco 8中,使用以下代码:

    @{
              var _dataTypeService = Services.DataTypeService;
              var blogCategories = (DropDownFlexibleConfiguration)_dataTypeService.GetDataType(1142).Configuration;
              foreach (var value in blogCategories.Items)
              {
                <option value="@value.Value">@value.Value</option>
              }
            }
    
    @{
    var_dataTypeService=Services.dataTypeService;
    var blogCategories=(DropDownFlexibleConfiguration)\ u dataTypeService.GetDataType(1142.Configuration);
    foreach(blogCategories.Items中的var值)
    {
    @价值,价值
    }
    }
    
    @{
              var _dataTypeService = Services.DataTypeService;
              var blogCategories = (DropDownFlexibleConfiguration)_dataTypeService.GetDataType(1142).Configuration;
              foreach (var value in blogCategories.Items)
              {
                <option value="@value.Value">@value.Value</option>
              }
            }