我们使用自定义用户界面通过 Sitecore API 以编程方式存储 Sitecore 项目。
由于 Sitecore 不允许有重复的名称,并且 Sitecore 不允许某些字符包含在项目名称中,我们决定将时钟滴答作为项目名称存储。但这对内容编辑器来说不是用户友好的。这些 URL 也不是搜索引擎优化的(因为它不是人类可读的)。
解决此问题的推荐方法是什么?如果我们要将项目的“标题”存储为项目名称,我们如何处理重复名称?
您应该DisplayName
用于将其标题和经过清理的版本存储为Name
string title = "Name with $tr@nge characters!";
// remove incorrect characters and add postfix if necessary to make it unique
string itemName = Sitecore.Data.Items.ItemUtil.GetUniqueName(parentItem,
Sitecore.Data.Items.ItemUtil.ProposeValidItemName(title));
Item item = parentItem.Add(itemName, template);
using (new EditContext(item))
{
item.Fields[FieldIDs.DisplayName].Value = title;
}