Umbraco获取数据类型中的前置值
我使用的是Umbraco 7,我创建了一个数据类型,它使用属性类型下拉列表发布键。如何获取每个prevalue的id 提前谢谢。类似的东西 您需要参考: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
@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>
}
}