2017-03-17 88 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。我认为你应该放置这个方法。我认为它应该是第一个运行 –