2017-03-17 91 views
0

我正在嘗試解決與使用Weblog Sitecore模塊的博客發佈評論有關的問題。從我所知道的情況來看,如果博客條目url包含破折號(即http://[domain.org]/blog/2016/december/test-2-entry),那麼我會得到「在[#]行預期的字符串結尾」錯誤。如果博客條目url不包含破折號,那麼評論表單工作正常。嘗試在博客中發表評論時字符串預期出現錯誤

<replace mode="on" find="-" replaceWith="_"/> 

還嘗試用空白空間替換破折號。由於我仍然遇到錯誤,因此兩種解決方案都沒有奏效。

Web.config中是否存在其他一些設置?我可以改變它以避免URL中的破折號?我已經閱讀了帶有#符號作品的虛線url文本,但我希望能夠自動執行此操作,而不是讓用戶返回並重命名其所有博客條目。

以下是錯誤的參考截圖:enter image description here

回答

3

我還沒有體驗到博客模塊,但對你所面臨的問題,您應該#逃離衝刺。請看下面的代碼片段:

public string EscapePath(string path) 
{ 
    string[] joints = Regex.Split(path, "/"); 
    string output = string.Empty; 
    for (int index = 0; index < joints.Length; index++) 
    { 
     string joint = joints[index]; 
     if (!string.IsNullOrEmpty(joint)) 
      output += string.Format("#{0}#", joint); 

     if (index != joints.Length - 1) 
      output += "/"; 
    } 

    return output; 
} 

參考:https://github.com/WeTeam/WeBlog/issues/52

有關在查詢中逃逸破折號的更多信息,可以發現here

UPDATE

你應該在發佈前調用此方法評論爲逃避破折號。您也可以從here下載DLL並將其用於您的解決方案

+0

這看起來像是一個很好的解決方案,但我不知道應該在哪裏放置此功能.... –

+0

正如我已經在答案中提供的,不要使用Weblog模塊。也許你可以在答案中提供的github頁面上提問。但我認爲必須有一個管道,您可以在模塊中重寫以添加方法 –

+0

如果我沒有弄錯,請在weblog.config中檢查xml節點weblogCreateComment。我認爲你應該放置這個方法。我認爲它應該是第一個運行 –