Sitecore 该字段包含一个不在选择列表中的值
Sitecore The field contains a value that is not in the selection list
我在 sitecore 中有一个项目“newsItem
”,其字段为“Recipient
”
这是带有 Name、Type 和 Source 的项目模板的屏幕截图。
我想从后面的代码中为项目分配一个 Id
newsItem["Recipient"] = GetRecipientFromRadioButton();
private string GetRecipientFromRadioButton()
{
//Get the item
Item enumerationNewsRecipientsItemId = Sitecore.Context.Database.GetItem("/sitecore/content/Site Config/Enumerations/News Recipients");
foreach (Item item in enumerationNewsRecipientsItemId.Children)
{
if //Some Condition
return item.ID.ToString();
}
return string.Empty;
}
现在,对于此项目,我在内容编辑器中看到以下内容“该字段包含一个不在选择列表中的值。”。尽管该 ID 是 /sitecore/content/Site Config/Enumerations/News Recipients
下项目的 ID 之一
Droplist
仅存储项目的名称。这就是为什么当您尝试将其设置为 ID
时,它说该值不存在于选择列表中。
您应该使用 Droplink
类型。
我复制了的部分答案所以问题:
The Droplist
is similar to the Droplink
field type in that they are both dropdowns. The Droplist
will only store the name of the item (so it will not have a link to that item), while the Droplink
stores the ID of the item. That means if you rename an option, or move it elsewhere in your Content Tree, the Droplist
will not update (resulting in possible broken links), the Droplink
will update.
在此处查看更详细的解释 Sitecore: Droplist vs. Droplink。
我在 sitecore 中有一个项目“newsItem
”,其字段为“Recipient
”
这是带有 Name、Type 和 Source 的项目模板的屏幕截图。
我想从后面的代码中为项目分配一个 Id
newsItem["Recipient"] = GetRecipientFromRadioButton();
private string GetRecipientFromRadioButton()
{
//Get the item
Item enumerationNewsRecipientsItemId = Sitecore.Context.Database.GetItem("/sitecore/content/Site Config/Enumerations/News Recipients");
foreach (Item item in enumerationNewsRecipientsItemId.Children)
{
if //Some Condition
return item.ID.ToString();
}
return string.Empty;
}
现在,对于此项目,我在内容编辑器中看到以下内容“该字段包含一个不在选择列表中的值。”。尽管该 ID 是 /sitecore/content/Site Config/Enumerations/News Recipients
Droplist
仅存储项目的名称。这就是为什么当您尝试将其设置为 ID
时,它说该值不存在于选择列表中。
您应该使用 Droplink
类型。
我复制了
The
Droplist
is similar to theDroplink
field type in that they are both dropdowns. TheDroplist
will only store the name of the item (so it will not have a link to that item), while theDroplink
stores the ID of the item. That means if you rename an option, or move it elsewhere in your Content Tree, theDroplist
will not update (resulting in possible broken links), theDroplink
will update.
在此处查看更详细的解释 Sitecore: Droplist vs. Droplink。