2016-12-12 60 views
0

我的模式實際上是:動態添加項目Sitecore的 - 項目名稱必須符合模式

^[\w\*\$][\w\s\-\$]*(\(\d{1,}\)){0,1}$ 

編輯 - 爲清楚起見,我沒有這個模式寫在我的代碼,但我拋出一個錯誤「名稱不符合模式^ [\ w * \ $] [\ w \ s - \ $] *((\ d {1,})){0,1} $」。我認爲這是一個Sitecore設置?我不確定它在哪裏確定,我也沒有自己寫。

我試圖動態地將文章添加到Sitecore中,但是我在名稱中包含句號的項目出現問題。我添加了一個函數來清理名稱(從另一個Sitecore問題中借用,它是作爲我的問題的答案發布的),但它不起作用。這是我的代碼:「」

var itemTemplateId = _templateFactory.GetTemplateId<IPressReleaseItem>(); 
TemplateID pressReleaseTemplateId = new TemplateID(itemTemplateId.ToID()); 
item = folder.Add(SanitizeHeadline(release.Headline), pressReleaseTemplateId); 

private string SanitizeHeadline(string name) 
{ 
    char[] invalidCharacters = Sitecore.Configuration.Settings.InvalidItemNameChars; 
    string sanitizedName = string.Concat(name.Trim().Split(invalidCharacters)); 
    return sanitizedName; 
} 

我的項目名稱是「VirtualInvestorConferences.com慶祝第75個事件鼓勵直接對話CEO和股東之間的」

如果我只是手動添加到無效字符的列表?我想了解爲什麼這不起作用。

+0

我認爲最好將當前模式放入問題中,而不是放入標題中。 –

+0

我會用:@「^ [\ w \。] + \ s + \ w + \ s +(\ d +)」永遠不要在同一模式中同時使用^開始的行和$結束。它從來沒有工作。 – jdweng

+0

@jdweng:*「絕對不要同時使用^開頭的行和$結束於相同的模式,它永遠不會工作。」*:對不起,但多麼愚蠢的建議! –

回答

4

最好使用ItemUtil.ProposeValidItemName(name)清理新項目名稱中的無效字符。